Безопасность MCP: OWASP Top 10, уязвимые серверы и риски для ИИ-агентов

https://dev.to/kenimo49/38-of-mcp-servers-have-no-auth-inside-the-owasp-mcp-top-10-hm Когда ассистент в IDE подключает внешние инструменты через Model Context Protocol, поверхность атаки перестаёт укладываться в привычную картину «один REST — одна политика».
В свежем разборе на Dev.to развивается линия OWASP MCP Top 10, а среди 500+ публичных MCP-серверов в авторской выборке 38% работают без аутентификации. Впереди сценарии от утечек секретов и подмены инструментов до атак на цепочку поставок — то, что напрямую бьёт по тем, кто собирает агентов и мультитул-сессии вокруг больших языковых моделей.
Почему это про ИИ-инструменты, а не «веб-хардненинг»
Протокол заточен под то, как сегодня живут клиенты больших моделей. Сервер может не только отдавать данные клиенту, но и инициировать обратные запросы, в том числе Sampling — опрос модели со стороны MCP.
В одной сессии нередко сидит сразу несколько инструментов; описания capability на естественном языке влияют на выбор действий агента; права у такого контура обычно высокие — файловая система, базы, внешние API из одного подключения. Именно это сдвигает модель угроз от «одного endpoint — одна политика».
OWASP MCP Top 10: от секретов до теневых серверов
Опубликованный проект OWASP (страница проекта MCP Top 10) систематизирует риски с обозначениями MCP01–MCP10. В том же материале на Dev.to они читаются как цепочка от операционных промахов к архитектурным дырам:
| Код | Фокус |
|---|---|
| MCP01 | Token Mismanagement & Secret Leaks |
| MCP02 | Scope Creep |
| MCP03 | Tool Poisoning |
| MCP04 | Supply Chain Attacks |
| MCP05 | Command Injection (включая связь с CVE-2026-30623 в транспорте STDIO) |
| MCP06 | Intent Flow Subversion |
| MCP07 | Insufficient Authentication & Authorization |
| MCP08 | Audit & Telemetry Gaps |
| MCP09 | Shadow MCP Servers |
| MCP10 | Context Injection & Oversharing |
Для разработчика, который подключает MCP к агенту, это не алфавит ради алфавита. MCP03 и MCP06 описывают, как подмена или сдвиг намерения ломают траекторию LLM; MCP07 — разрыв между «сервер доступен» и «сервер кому-то доверен»; MCP09 — инвентаризация того, что висит в конфиге редактора.
Список OWASP задаёт общий язык между security и продуктовыми командами, которые уже завязаны на MCP как на шине инструментов для моделей.
Цифры, CVE и примеры из того же материала
На странице приводится формулировка «30+ CVE за 60 дней» и отсылка в таблице к Adversa AI, March 2026.
В «таблице цифр» рядом фигурируют, в частности: CVSS 9.6 для наиболее тяжёлой CVE (CVE-2025-6514); оценка 200K+ уязвимых инстансов (STDIO RCE) при 7,000+ публичных серверах; 150M+ загрузок затронутых SDK; 82% из 2,614 реализаций MCP с файловыми операциями, уязвимых к path traversal.
Коэффициент 142.4× усиления токенов в сценарии Denial of Wallet там же сопровождается ссылкой на arXiv в тексте поста. Всё перечисленное подаётся на той же странице как аргумент, что масштаб уже не академический.
Отдельно выделена CVE-2026-30623: уязвимость транспорта STDIO, Remote Code Execution и задействование официальных MCP SDK для Python, TypeScript, Java, Rust. В тексте есть реплика экосистемы про ожидаемое поведение и ответственность разработчика за санитизацию («Expected behavior» — формулировка, которую приводится на странице).
В блоке кейсов названы postmark-mcp с бэкдором в npm (сентябрь 2025); связка MCPoison и Cursor IDE (CVE-2025-54136); цепочка Anthropic mcp-server-git (CVE-2025-68143 / 68144 / 68145); атака Denial of Wallet с коэффициентом 142.4×.
На странице приводится пример паттерна, который автор считает опасным: вызовы вроде os.system без жёсткой политики
ввода на стороне MCP. В связке со STDIO это превращает «локальный транспорт» в классический RCE-контур.
Выводка про 38% на той же странице связана со сканированием 500+ серверов; дальше формулировки источника смысл не растягиваем — деталей методики там нет.
Чеклист из девяти шагов и личный опыт автора
Практический блок на странице завершает сюжет: перед выкладкой MCP-сервера в прод описан чеклист из девяти пунктов (гранулярные ключи, OAuth/mTLS, subprocess.run(shell=False), аудит описаний инструментов и другое — по тексту там же).
Как контрапункт приводится личная конфигурация: за месяц добавлено 14 серверов, у трёх обнаружены захардкоженные ключи, один оказался в сети без auth — профиль ошибок того же класса, ради которого Top 10 существует в списках интеграций IDE, а не на бумаге.
Источники
- Kenimo49, «38% of MCP servers have no auth -- inside the OWASP MCP Top 10», Dev.to — основной первоисточник цифр и структуры MCP01–MCP10 в этом материале; дата доступа: 2026-05-06 (UTC). URL:
Dev.to - OWASP Project MCP Top 10 — URL из списка ссылок на странице того же поста на Dev.to:
https://owasp.org/www-project-mcp-top-10/. - arXiv (цитата в посте автором, сценарий DoW):
https://arxiv.org/html/2602.14798v1— дата доступа: 2026-05-06 (UTC), в соответствии с датой доступа к первоисточнику выше.