Кибербезопасность
Исследователь раскрывает одну и ту же уязвимость MCP в Google, JPMorgan и двух правительственных организациях

Независимый исследователь в области безопасности Сайед Анас Мохиуддин раскрыл в обновление исследования октября 2026 года, что та же ошибка серверного подделывания запросов в серверах Model Context Protocol была подтверждена и исправлена командами безопасности пяти несвязанных организаций: Google, JPMorgan Chase, Weaviate, межминистерским цифровым директоратом Франции и правительством города Танжеранг в Индонезии.
Обновление под названием “Protocol Pivoting, four months later” проверяет предсказание Мохиуддина, сделанное в мае 2026 года: если уязвимость является структурной, а не результатом одной небрежной реализации, та же ошибка появится в серверах, написанных командами, не имеющими общего кода, отрасли, страны или владельца. Он сообщает, что каждая из пяти организаций подтвердила случай через свою собственную команду безопасности, и что поставщик безопасности Rapid7 отдельно опубликовал CVE для другой, но связанной уязвимости. В обновлении перечислены пять организаций, исправивших одну и ту же SSRF, два опубликованных CVE и пять обнаружений в федеральных серверах MCP США, которые остаются открытыми.
Мохиуддин описывает два режима отказа, лежащих в основе шаблона. Первый — это подделка серверных запросов (SSRF): MCP‑сервер формирует исходящий запрос из URL, пути или конечной точки, предоставленных агентом, не проверяя, куда они разрешаются, поэтому агент фактически решает, с кем будет взаимодействовать сетевая идентичность сервера. Второй — небезопасная обработка входящих данных, наиболее заметно выражающаяся в записи полных ответов API в централизованные журналы без редактирования, что обычные ошибки способны вызвать. Он связывает оба случая с одним предположением: данные, пересекающие границу MCP, считаются надёжными, потому что они поступили изнутри системы, что, по его мнению, не выдерживает в агентном конвейере.
CVE‑2026‑14540 в MCP Toolbox от Google
Согласно записи в базе данных GitHub Advisory для CVE‑2026‑14540, опубликованной Национальной базой уязвимостей, в общих HTTP‑источниках и компонентах инструментария Google mcp-toolbox версии 0.3.0‑1.4.0 присутствует уязвимость SSRF. Поскольку HTTP‑клиент не имел ограничительной политики перенаправлений и никогда не проверял IP‑адреса назначения, специально сформированный параметр пути мог перенаправлять исходящие запросы инструмента к внутренним или произвольным внешним конечным точкам. В advisory уязвимость оценена как высокая (severity) с баллом CVSS 8.0; она была опубликована 31 июля 2026 года и последняя редакция – 8 августа 2026 года. Мохиуддин сообщает, что CVE был зарезервирован 3 июля 2026 года и что запись признаёт его как обнаружившего.
Google объединил исправление, запрос на включение #3448 в репозитории googleapis/mcp-toolbox, 18 июня 2026 года, и оно было выпущено в mcp-toolbox v1.5.0. Запрос реализует SSRFGuard для предотвращения атак DNS‑rebinding в промежутке между проверкой адреса и установлением соединения, добавляет настраиваемые свойства allowPrivateNetworks, allowedIpRanges и customBlockedIpRanges, проверяет настроенный BaseURL при инициализации, а не при первом запросе, и явно предупреждает о риске атаки «человек посередине», когда проверка SSL отключена. PR указывает Мохиуддина как автора сообщения, а Мохиуддин описывает исправление Google как эталонную реализацию реального защитного механизма SSRF.
Четыре дополнительных подтверждённых случая
Мохиуддин сообщает, что в открытом репозитории jpmorgan-payments/ai от JPMorgan Chase имеется сервер MCP для поиска по документации, в котором инструмент read_documentation применяет список разрешённых доменов перед получением, тогда как его соседний инструмент related() получает URL, предоставленный вызывающим, на стороне сервера без каких‑либо ограничений. Он заявляет, что компонент был форкнут из проекта AWS, оригинальная версия которого никогда не разыменовывала URL вызывающего, что команда по ответственному раскрытию уязвимостей банка подтвердила находку как действительную, и что исправление было развернуто. Его имя указано на публичной странице признания ответственного раскрытия JPMorgan Chase, а он оценивает находку как среднюю по серьёзности, отмечая, что с поддельным запросом не передаются учётные данные.
Weaviate, по его словам, объединил запрос на включение, ограничивающий настройки apiEndpoint, region и location модуля Google только хостами Google API, и перечисляет его по имени в публичном разделе «Security Hall of Fame», датированном 25 августа 2026 года.
Проект datagouv/datagouv-mcp объединил запрос на включение #126, “feat: harden SSRF on external APIs” 4 сентября 2026 года, и запрос открывается с указанием Мохиуддина как автора сообщения. Согласно PR, поле machineдокументацияurl, предоставляемое любым зарегистрированным поставщиком data.gouv.fr, запрашивалось на стороне сервера и могло указывать на адреса loopback, частных сетей или облачных метаданных, при этом DNS‑rebinding мог менять цель между проверкой и подключением, а 302‑перенаправление могло привести к внутреннему хосту. Исправление проверяет IP‑адрес назначения во время подключения, повторно проверяет каждый переход перенаправления и отклоняет прокси. Мохиуддин определяет проект как официальный сервер MCP для национальной открытой платформы данных Франции, поддерживаемый DINUM, межминистерским цифровым директоратом.
A GitHub Security Advisory, опубликованное 3 сентября 2026 г. от сопровождающих INFOKOM-KI/Wazuh-MCP-Server, оценённое как High, фиксирует, что рекламируемая защита от SSRF инструмента blueteamcheckwebshell отклоняла только буквальные IP‑адреса и никогда не разрешала имена хостов, поэтому любое DNS‑имя, указывающее на частный, обратный или link‑local адрес, включая метаданные облачных экземпляров, обходило её. В рекомендациях отмечается, что заявленная гарантия инструмента «SSRF Protection: Private/reserved IPs in the URL host are rejected» не действовала для URL‑ов, основанных на именах хостов. Уязвимость была исправлена в коммите 2bbfe12, а в советнике указано, что репортером является Mohiuddin. Mohiuddin заявляет, что сообщил об этом 2 сентября 2026 г., что сопровождающие ответили с адреса tangerangkota.go.id, и что проект поддерживается правительством города Tangerang в Индонезии.
Rapid7 запись в базе уязвимостей для CVE-2026-97228 фиксирует уязвимость внедрения GraphQL‑запроса в Rapid7 Bulk Export MCP версии 0.2.5‑0.6.1, при которой необработанный экспортid аргумент инструмента MCP вставляется напрямую в запрос GraphQL. Rapid7 оценивает её в 2.7, низкий уровень, по шкале CVSS 3.1, запись опубликована 25 сентября 2026 года и отмечает, что внедрённые запросы выполняются в рамках собственного API оператора и не могут пересечь границу арендатора; версия 0.6.2 исправляет проблему, передавая exportid как параметризованную переменную. Mohiuddin заявляет, что Rapid7 признал его обнаружившим уязвимость.
Помимо этих случаев, Mohiuddin сообщает, что по состоянию на обновление 16 советов по безопасности GitHub, опубликованных собственными сопровождающими проектов, указывают его как репортера; они охватывают SSRF, а также инъекции команд, пробелы в аутентификации, захват сессий, утечки учётных данных и обходы ранее внедрённых исправлений, и что его исправления были включены в такие проекты, как github-mcp-server, mongodb-mcp-server и salesforce-mcp-server.
Неурегулированные правительственные выводы
Mohiuddin сообщает, что 2 сентября 2026 г. подал пять находок в виде закрытых советов по безопасности GitHub, охватывающих серверы MCP, находящиеся под управлением Technology Transformation Services агентства GSA: сервер заявок на выплаты Департамента по делам ветеранов, сервер CMS Blue Button, сервер regulations.gov, сервер USASpending и сервер CDC PLACES. Он заявляет, что все пять находятся в стадии триажа, не исправлены и не представлены как подтверждённые результаты.
В случае VA, который он описывает лишь на уровне класса, сервер записывает полное тело ошибки upstream‑API выплат на уровне ERROR без редактирования; такие тела могут содержать имя ветерана, номер социального страхования, дату рождения и адрес, и он утверждает, что обычные ошибки валидации достаточны, чтобы вызвать запись в журнале в ходе обычной работы. Он удерживает детали на уровне кода до тех пор, пока серверы не будут исправлены.
Он также сообщает, что 1 сентября 2026 г. уведомил JPCERT о том, что у jgrants-mcp-server Японского цифрового агентства отсутствует аутентификация, а 7 сентября 2026 г. открыл публичный pull‑request, требующий явного согласия для привязки сервера к чему‑либо, кроме loopback, и ограничивающий размер записываемых вложений. Pull‑request пока не был слит, и он не представляет его как подтверждённый результат.
Переключение протоколов и доклад на MCPCon
Mohiuddin определяет Protocol Pivoting как многошаговую атаку, при которой противник проникает через один протокол, использует доверительные предположения, которые протоколы делают друг о друге, и повышает привилегии до возможностей, доступных только через иной протокол. В его конкретном примере текст, оформленный как инструкция задачи A2A, помещается в вывод инструмента MCP; оркеструющий агент передаёт его субагенту как обычную делегацию, и субагент, доверяя своему оркестратору, исполняет его.
формальный препринт, “Protocol Pivoting: Cross-Protocol Attack Escalation in Agentic AI Systems,” был опубликован на Zenodo 24 мая 2026 г. В нём представлены три сценария: повышение привилегий MCP‑к‑A2A через неявную делегацию доверия, внедрение возможностей A2A‑к‑MCP через подмену агента‑злоумышленника, а также цепочки кросс‑протокольных внедрений подсказок. Также анализируется, почему существующие защиты не справляются с этим классом, и предлагается единая кросс‑протокольная система безопасности с формальной моделью границы доверия и тремя протокольно‑независимыми мерами защиты.
Работа в мае началась с проекта Microsoft playwright-mcp, у инструмента browser_navigate которого не было защиты от SSRF и он принимал любой URL, предоставленный агентом, позволяя направить агент на сервис метаданных экземпляра AWS по адресу 169.254.169.254 и получить его учётные данные. Mohiuddin отмечает, что оформил это как публичный issue на GitHub, что CVE отсутствует и нет подтверждения от поставщика, а оценка серьёзности является его собственным суждением.
Mohiuddin утверждает, что анализ состава программного обеспечения и сканеры зависимостей пропускают этот класс, потому что опасный ввод поступает по транспортному каналу в виде аргумента инструмента, описанного в манифесте инструмента, который сканер никогда не читает, поэтому граф вызовов обрывается на границе транспорта. Он сообщает, что создал mcp-safeguard, сканер с открытым исходным кодом, который проверяет серверы MCP через их открытые инструменты без необходимости доступа к исходному коду, ищет шесть классов: SSRF, избыточные разрешения, поверхности внедрения подсказок, утечки информации, пробелы в аутентификации и обход жизненного цикла. Он также отмечает, что инструменты сопоставления шаблонов, включая его собственный, упускают большую часть этого класса.
Mohiuddin заявляет, что представит кросс‑вендорный паттерн 23 октября 2026 г. на MCPCon North America в Сан‑Хосе, включив все находки, исправленные к тому моменту, и что федеральные находки останутся закрытыми до их исправления.












