CVE-2026-100849: обход SSRF-фильтра в AzuraCast через hostname и приватные IP
В AzuraCast до версии 0.23.8 обнаружена уязвимость обхода защиты от SSRF (CVE-2026-100849) с оценкой CVSS 7.1 (HIGH). Проверка URL вебхука отклоняет только literal link-local адреса, пропуская loopback, RFC1918-диапазоны и любые hostname. Пользователь с правом WebHooks на уровне станции может заставить сервер отправлять POST-запросы во внутреннюю сеть.
Подробности
Уязвимость присутствует в AzuraCast версий до 0.23.8 и локализована в методе AbstractConnector::getValidUrl() (файл backend/src/Webhook/Connector/AbstractConnector.php). Данный метод используется коннекторами Generic и Discord для проверки URL вебхука перед его сохранением и вызовом. Логика проверки реализована некорректно по двум причинам. Во-первых, отклоняются только URL, чей хост является литеральным link-local IP-адресом из диапазонов 169.254.0.0/16 или fe80::/10. При этом loopback-адреса (127.0.0.0/8, ::1) и приватные диапазоны RFC1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) не блокируются. Во-вторых, при передаче любого hostname, не являющегося литеральным IP-адресом, вызов парсинга IP завершается исключением, что приводит к полному пропуску проверки. В результате пользователь, обладающий лишь правом WebHooks в рамках своей станции, может настроить вебхук, указывающий на внутренний, loopback- или приватный сетевой ресурс. Сервер AzuraCast выполнит исходящий HTTP POST-запрос, содержащий данные Now Playing станции, что и составляет суть SSRF. Дополнительно эндпоинт PUT /station/{id}/webhook/{id}/test позволяет тому же низкопривилегированному пользователю инициировать такой запрос по требованию. На момент публикации advisory исправленная версия продукта отсутствовала.Что делать
Поскольку патч на момент раскрытия уязвимости не был доступен, рекомендуется применить компенсирующие меры: - Ограничить круг пользователей, имеющих право WebHooks на уровне станции, доверенными администраторами. - Заблокировать исходящие HTTP-запросы от сервера AzuraCast к loopback-, link-local- и RFC1918-адресам на уровне сетевого периметра (firewall, egress-фильтрация, network policies). - По возможности разместить сервис в изолированном сегменте сети с ограниченным доступом к внутренним ресурсам. - Отслеживать выпуск обновлений AzuraCast и установить версию 0.23.8 или более позднюю сразу после её появления. - Провести аудит уже созданных вебхуков на предмет подозрительных URL, указывающих на внутренние адреса. Итог: CVE-2026-100849 — это высокоопасная уязвимость SSRF в AzuraCast, возникающая из-за некорректной фильтрации URL вебхуков. До выхода официального патча ключевой защитой служат ограничение прав на управление вебхуками и сетевая изоляция исходящего трафика сервера. Администраторам следует рассматривать установку обновления до 0.23.8 как приоритетную задачу.Источник: CVE Project (cvelistV5)
