
Уязвимы по замыслу: аудит в реальном времени 414 MCP-серверов, доступных из интернета, выявил 68 уязвимостей
- OrcaНОВИНКАOrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-29100 tok/s
- OrcaНОВИНКАOrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 за 1 млн токенов · 102 tok/s
- OrcaНОВИНКАOrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 за 1 млн токенов · 284 tok/s
- OrcaНОВИНКАOrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 за 1 млн токенов · 93 tok/s
- MoonshotНОВИНКАMoonshotAI: Kimi K3.1 Pro2026-10-2446Интеллект
- OrcaНОВИНКАOrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 за 1 млн токенов · 106 tok/s
- minimaxНОВИНКАMiniMax: M3.1 Flash2026-10-1929Интеллект
- OrcaНОВИНКАOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 за 1 млн токенов · 70 tok/s
- deepseekНОВИНКАDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733Интеллект
- DeepSeekНОВИНКАDeepSeek: DeepSeek V4.1 Flash2026-10-1740Интеллект
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 за 1 млн токенов · 95 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955Интеллект
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854Интеллект
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 за 1 млн токенов · 167 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228Интеллект
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Интеллект
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Интеллект
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2127Интеллект
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2130Интеллект
- xAIGrok 4.72026-09-2134Интеллект
В этот день, 31 июля 2026 года, Николас Падилья опубликовал Exposed by Design (arXiv:2608.00150) — 13-страничный препринт, описывающий то, что он называет первой динамической поведенческой оценкой безопасности доступных из интернета Model Context Protocol-серверов. Четыре измерительных прогона в том месяце подтвердили наличие 640 работающих производственных серверов, из которых 414 были активно проверены; в ходе проверки выявлено 68 уязвимостей, подлежащих отчёту, и все они были направлены мейнтейнерам в виде GitHub Security Advisories. 380 из 414 — 91,8% — не имели OAuth-аутентификации, а 687 экземпляров инструментов предлагали выполнение команд оболочки без средств контроля доступа. Падилья не приводит свидетельств того, что что-либо из этого эксплуатировалось: тестирование оставалось на уровне доказательства концепции, учётные данные не были получены и никакие данные не были похищены. Полный список источников этой записи, степень серьёзности и оценка уверенности находятся в архиве инцидентов ИИ, наряду с другими находками по MCP и инфраструктуре, зарегистрированными рядом с этой записью.
Что на самом деле сделал аудит
Model Context Protocol — это интерфейс, позволяющий ИИ-агенту вызывать инструменты, размещённые где-то в другом месте: поиск по документам, запрос к базе данных, shell-помощник. Сервер, который взаимодействует по этому протоколу через HTTP и доступен из интернета, фактически представляет собой поверхность инструментов, к которой может обратиться кто угодно. В статье Падильи утверждается, что совокупность таких серверов никогда не была корректно подсчитана и что весь смысл именно в подсчёте: обнаружение — сложная часть, а каждый предыдущий обзор рассматривал иной срез.
Его этап обнаружения объединил одиннадцать источников — crt.sh, Hugging Face, GitHub, npm, Smithery, PyPI, Censys, FOFA, Shodan, glama.ai и pulsemcp.com — исходя из того, что ни один из них по отдельности не охватывает всю совокупность. На активном этапе использовался Corvus — фреймворк, который Падилья создал для исследования: 34 тестовых модуля, которые охватывают 10 классов уязвимостей, специфичных для MCP, — 13 статических и 21 динамический. Он опубликован на GitHub в рамках организации CobaltoSec и на PyPI как cobaltosec-corvus, а собственный файл статистики репозитория фиксирует то же количество модулей — 34.
Четыре прогона состоялись 15, 18, 21 и 24 июля 2026 года. Более ранние прогоны дали только числа подтверждений; последние три проверили 3 485, 3 948 и 4 110 кандидатов и подтвердили соответственно 140, 464 и 296 активных серверов. После дедупликации 972 исходных наблюдений с 332 повторными появлениями осталось 640 уникальных подтверждённых серверов, из которых 414 — 64,7% — прошли полное динамическое тестирование. Падилья считает 640 нижней границей. Censys, один из источников обнаружения, в мае 2026 года оценивал число связанных с MCP эндпоинтов по всему миру более чем в 21 000, и он использует эту величину как оценку масштаба, а не как подсчёт того, что он тестировал.

Если читать это как воронку, числа — настоящий аргумент статьи: широкий дешёвый проход находит кандидатов быстрее, чем аккуратный проход успевает их проверить. Полностью проверены были лишь 414 из 640 подтверждённых серверов, и Падилья не утверждает, что проверенная подвыборка похожа на непроверенную часть.
Что оно обнаружило
Главный вывод — это аутентификация, а точнее её отсутствие. Из 414 проверенных серверов 380 (91,8%) не использовали OAuth. В статье говорится, что большинство из остальных применяли статические bearer-токены или API-ключи, зачастую предсказуемые или пустые — сервер, принимающий фиксированную строку, тоже нельзя считать по-настоящему аутентифицированным. Поскольку аудит проверял только серверы, публично доступные без учётных данных, эта цифра по определению описывает именно открытую совокупность; это не оценка для MCP-серверов в целом.
68 находок, подлежащих отчёту, распределяются по классам, причём подсчёты по классам перекрываются, а не разбивают общую сумму: 380 недостатков аутентификации, 52 случая принятия при фаззинге протоколов, 47 случаев отравления инструментов, 38 командных инъекций, 31 обход схемы, 29 подделок серверных запросов, 24 манипуляции URI ресурсов, 22 инъекции промптов, 18 раскрытий токенов и 14 индикаторов цепочки поставок. Модули для атак типа «отказ в обслуживании» были написаны, но намеренно не запускались против производственных серверов — Падилья исключает их по этическим соображениям. Четыре типа уязвимостей, названные в аннотации — SQL-инъекция, SSRF против служб метаданных облака, инъекция шаблона промпта и обход пути через манипуляцию курсором — каждый встречается внутри этих классов.

Показатель по выполнению команд оболочки требует одной оговорки, которую статья не устраняет. В разделе результатов 687 экземпляров инструментов с выполнением команд оболочки и без аутентификации подсчитаны по подтверждённому пулу из 640 серверов. В обсуждении тот же показатель вводится словами «из 414 динамически проверенных серверов», а затем отсылает к «более широкому подтверждённому набору». Эти две формулировки не согласуются, и статья нигде не приводит общее число инструментов для тестируемых серверов, поэтому 687 нельзя преобразовать в процент.
Текучесть — это вывод, который сильнее всего меняет то, как следует интерпретировать эти цифры. Из 464 серверов, подтверждённых 21 июля, 193 — 41,6% — исчезли к моменту проверки в ходе четвёртого прогона три дня спустя. Девять из 41 сервера с находкой уровня CRITICAL также исчезли. Падилья трактует это как развёртывание без проверки; это также означает, что у находки, подтверждённой в понедельник, может не оказаться владельца, который исправит её к четвергу.
Три кейса и что можно проверить
Три находки подробно описаны, у каждой указан идентификатор GitHub Security Advisory. SQL-инъекция в lectorium-corpus-mcp (GHSA-m8qh-p8m5-8c48, оценена как CRITICAL) была подтверждена с помощью полезной нагрузки ' OR 1=1 -- и различия в размере ответа, при этом содержимое документов не читалось и не сохранялось. SSRF в epwforge (GHSA-r9fx-qwmc-rvx3, HIGH) была подтверждена по времени: 11,9 секунды при обращении к внутреннему адресу метаданных по сравнению с базовым значением 0,3 секунды, при этом содержимое ответа метаданных не сохранялось. Инъекция в шаблон промпта в frootai (GHSA-5h8f-r9g8-5w5p, HIGH) завершает набор.
Две из трёх можно проверить напрямую. 30 октября 2026 года первые две страницы рекомендаций стали публично доступны в репозитории рекомендаций CobaltoSec, обе опубликованы 20 августа 2026 г., при этом на обеих по-прежнему указано «Patched versions: None» и отсутствует CVE. Третья, GHSA-5h8f-r9g8-5w5p, по этому адресу вернула «не найдено». В репозитории CobaltoSec на ту же дату было указано 46 опубликованных рекомендаций, охватывающих серверы MCP и смежные инструменты ИИ; в статье на момент её написания 19 были учтены как публично раскрытые, а 49 всё ещё находились под эмбарго. Артефакт сканирования для frootai от 28 июля 2026 г. находится в репозитории Corvus, значит, тест проводился; не видна лишь сама рекомендация.
Сам процесс раскрытия информации описан лишь в общих чертах, а не подробно. Все 68 находок были переданы мейнтейнерам через приватные GitHub Security Advisories в рамках 90-дневного скоординированного эмбарго, а там, где конфиденциальное сообщение об уязвимости было недоступно, Падилья вместо этого открывал публичную задачу в репозитории. В статье на основе отдельных примеров сообщается, что одни мейнтейнеры выпустили исправления в течение 24 часов, другие не отвечали неделями, а некоторые репозитории были заброшены. В ней не приводится ни числа контактировавших мейнтейнеров, ни таблицы ответов; говорится, что эти данные будут полностью представлены к моменту подачи.
Что не устанавливает статья
«Exposed by Design» — препринт с одним автором. arXiv указывает версию 1, отправленную 31 июля 2026 года, без ссылки на журнал и без заявления о рецензировании. Архив присваивает записи уровень достоверности B — документировано, но из одного источника — и этот уровень сохраняется для всей этой работы: каждая цифра выше взята из статьи Падильи или из публикуемых им материалов, а не из независимого измерения.
Независимое новостное издание, похоже, не сообщало об этом исследовании. Освещение существует — аналитическая статья, написанная ИИ, на forkast.news, публикации в LinkedIn и Medium, блог по безопасности на китайском языке, объяснительная статья на японском — но в них пересказывается препринт без интервью с автором, проверки предупреждений или добавления данных. Производное освещение не является подтверждением.
Падилья сам указывает на ограничения, и они необычно конкретны. Тестировались только HTTP-транспорты; stdio-серверы — обычный локальный случай — остаются вне области охвата. Обнаружение выполняется по мере возможностей, поэтому 640 — это нижняя граница. 226 подтверждённых серверов, которые не были полностью тестированы, исключили из-за ответов 403, сбросов соединений, несоответствующих JSON-RPC-ответов или просто потому, что они были офлайн, и в работе говорится, что возникшее в результате смещение выборки невозможно ограничить. Обнаружение опирается на эвристики — оракулы по времени, дифференциальные ответы, проверку схем — без размеченного эталонного набора и без опубликованных показателей точности или полноты для 34 модулей. Документируемая им нестабильность подрывает временную валидность отдельных находок. И один исследователь, выполняющий ручную проверку, вносит риск предвзятости подтверждения, который он называет, но не оценивает количественно.

Что изменилось после
На данный момент практический результат — это инструмент и поток рекомендаций. Corvus можно установить, и он документирован, а репозиторий рекомендаций CobaltoSec содержал 46 опубликованных записей по состоянию на 30 октября 2026 года против 19 публичных раскрытий, которые статья насчитала на конец июля. Два собственных кейса из статьи до сих пор не имеют версии с исправлением — для этих серверов раскрытие информации создало публичную запись, но пока ещё не исправление.
Для защитников полезная часть исследования — его метод, а не его заголовок. Цифра 91,8%, полученная только по серверам, которые отвечали без учётных данных, говорит о чём-то узком и реальном: большая часть того, что открыто, никогда не была закрыта, а трёхдневная текучесть позволяет предположить, что многое из этого поднимали для демо, прототипа или теста и так и не усилили защиту. Чего работа сказать не может, так это того, применимо ли то же самое к MCP-серверам, на которые организации действительно опираются, потому что они никогда не входили в выборку.
