mcp-from-openapi: обход SSRF-фильтра через trailing-dot в blockedHosts (CVE-2026-115751)
В agentfront mcp-from-openapi с 2.2.0 до 2.9.0 обнаружена SSRF-уязвимость: точку в конце имени хоста можно использовать для обхода денилиста ssrf.blockedHosts. Атака актуальна, если злоумышленник контролирует URL OpenAPI-спецификации или цель редиректа. Критичность — средняя (CVSS 6.3).
Подробности
Уязвимость затрагивает версии mcp-from-openapi с 2.2.0 до 2.9.0 (версия 2.9.0 содержит исправление). Опасность связана с настройкой ssrf.blockedHosts — денилистом хостов, к которым компонент не должен обращаться. Как показали исследователи, к заблокированному имени хоста достаточно добавить завершающую точку (trailing dot), чтобы проверка денилиста не сработала, а HTTP-клиент при этом всё равно обратился к исходному узлу. Такой приём эксплуатирует разницу между тем, как имя хоста нормализуется при проверке, и тем, как оно разрешается при фактическом запросе. Воспользоваться уязвимостью может злоумышленник, контролирующий URL OpenAPI-спецификации либо цель редиректа, который обрабатывает mcp-from-openapi. В результате компонент может выполнить запрос к хосту, который оператор явно исключил из разрешённых, — например, к внутренним сервисам или адресам во внутренней сети, скрытым за денилистом. Это создаёт риск несанкционированного доступа к внутренним ресурсам и утечки данных через SSRF-канал. Уязвимости присвоена оценка CVSS 6.3 (MEDIUM). Столь умеренный балл отражает зависимость от условий эксплуатации: атакующему требуется контроль над спецификацией или редиректом, а также наличие в конфигурации значимых ограничений blockedHosts, которые можно обойти.Что делать
- Обновите mcp-from-openapi до версии 2.9.0 или новее — в ней устранена проблема обхода денилиста. - Если обновление невозможно, ограничьте источники OpenAPI-спецификаций доверенными адресами и запретите обработку недоверенных редиректов. - Дополнительно контролируйте исходящие запросы компонента на сетевом уровне: сегментируйте доступ и блокируйте обращения к внутренним подсетям, не полагаясь исключительно на ssrf.blockedHosts. - Проверьте журналы на предмет подозрительных запросов к хостам с завершающей точкой в имени, особенно если компонент обрабатывал внешние спецификации. Итог: CVE-2026-115751 — наглядный пример того, что денилисты на уровне приложения обходятся тривиальными вариациями имён хостов. Обновление до 2.9.0 закрывает вектор, но для полноценной защиты SSRF-фильтры следует подкреплять сетевыми ограничениями и контролем источников спецификаций.Источник: CVE Project (cvelistV5)
