Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-52616 — Бюллетень безопасности и безвредный PoC для внедрения команд ОС в nmap MCP-сервере, с отслеживанием дублирующихся CVE, рекомендациями по обнаружению и мерами по устранению уязвимости. | Kitploit
Инструменты/GitHubGitHub/s1ko/cve-2026-52616
Анализ уязвимостейЭксплуатацияСетевая безопасностьБезопасность API
GitHubs1ko/cve-2026-52616

CVE-2026-52616

Бюллетень безопасности и безвредный PoC для внедрения команд ОС в nmap MCP-сервере, с отслеживанием дублирующихся CVE, рекомендациями по обнаружению и мерами по устранению уязвимости.

Репозиторий
261 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-52616 — mcp-nmap-server: внедрение команд ОС через run_nmap_scan

MCP-инструмент run_nmap_scan формирует свою команду путём строковой интерполяции параметров target и additionalFlags и выполняет её через child_process.exec, то есть /bin/sh -c.

⚠ Прочтите в первую очередь — дублирующий идентификатор

Эта уязвимость была публично известна ещё до появления данного CVE ID. Она покрыта CVE-2026-3484 / GHSA-xc68-rrqc-qgq3, присвоенным VulDB и опубликованным 2026-03-03 в отношении mcp-nmap-server <= 1.0.1 — тот же пакет, та же точка sink CWE-78 child_process.exec.

CVE-2026-52616 был присвоен s1ko организацией MITRE CNA-LR 2026-07-13 в ответ на независимый отчёт. Это присвоение, по-видимому, является дубликатом, и оно было помечено как таковое. Ссылаться следует на ранее существовавший идентификатор CVE-2026-3484.

Этот репозиторий опубликован для полноты и документирования дубликата, а не как заявление о новом открытии. Заслуга за первоначальное публичное раскрытие не принадлежит s1ko.

CVECVE-2026-52616 — дубликат CVE-2026-3484
CWECWE-78 (Ненадлежащая нейтрализация специальных элементов, используемых в команде ОС)
Пакетmcp-nmap-server (npm)
Затронуто1.0.1 и более ранние — все опубликованные версии
Исправлено внет — репозиторий заархивирован
CVSS v3.1AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 8.4 High (транспорт stdio). AV:N → 9.8 Critical, если сервер обёрнут в сетевой транспорт.
Независимо сообщеноs1ko (github.com/s1ko, [email protected])
CVE присвоен2026-07-13, MITRE CNA-LR

Ловушка в именовании, которую стоит отметить всем, кто занимается дедупликацией этого случая: npm-пакет называется mcp-nmap-server, а репозиторий — nmap-mcp-server. Эти два порядка слов относятся к одному и тому же проекту.

Модель угроз

Аргументы MCP-инструментов находятся под влиянием атакующего. Они формируются LLM из содержимого, которое обрабатывает агент — документов, веб-страниц, вывода инструментов — поэтому косвенная инъекция промпта даёт атакующему контроль над значениями, которые получает обработчик инструмента. Обработчик, передающий любое из этих значений в оболочку, превращает это влияние в выполнение кода на хосте, где запущен MCP-сервер. Это та же модель, что и в прецедентном случае aws-mcp-server / CVE-2026-5058.

Выполнение

dist/index.js — цель добавляется к строке команды, которая затем передаётся в exec:

command += ` ${target}`;
…
const { stdout, stderr } = await promisify(exec)(command);

child_process.exec выполняет свой аргумент в /bin/sh -c, поэтому всё, что внёс вызывающий код, является синтаксисом оболочки. Входная схема Zod объявляет z.string(), которая проверяет тип и ничего не говорит о содержимом, поэтому метасимволы проходят насквозь. additionalFlags попадает в ту же строку тем же путём.

Вызов run_nmap_scan с target, установленным в 127.0.0.1; touch /tmp/marker; echo INJECTED, даёт:

/bin/sh -c "nmap … 127.0.0.1; touch /tmp/marker; echo INJECTED"

Воспроизведение

poc/driver.mjs взаимодействует с MCP через stdio: он инициализирует сервер, выполняет один вызов tools/call для run_nmap_scan с внедрённым target и проверяет наличие файла-маркера. Полезная нагрузка — безобидный touch.

npm pack [email protected]
tar xf mcp-nmap-server-1.0.1.tgz && cd package && npm install
node ../poc/driver.mjs

Ожидается на уязвимой версии:

==== POC RESULT (mcp-nmap-server) ====
marker /tmp/PWNED_nmap created: true
verdict: CONFIRMED — command injection executed

nmap не обязательно должен быть установлен — внедрённая команда выполняется в той же строке /bin/sh -c независимо от того, разрешается ли ведущий бинарный файл. Проверено 2026-06-01 в изолированном контейнере и повторно проверено 2026-06-13. Запускайте только против инфраструктуры, которую вы уполномочены тестировать.

Обнаружение

  • Командная строка nmap, содержащая ;, &&, ||, |, обратную кавычку или $(.
  • Процесс sh -c, командная строка которого начинается с nmap и содержит вторую команду после разделителя — сигнал дерева процессов (auditd, eBPF, Falco, EDR), не зависящий от логирования приложения.
  • Неожиданные дочерние процессы сервера MCP. nmap ожидаем; оболочка, интерпретатор или сетевой клиент — нет.
  • Журналы вызовов инструментов MCP, где target или additionalFlags содержат метасимволы оболочки. target должен соответствовать IP, CIDR или имени хоста и ничему больше.

MITRE ATT&CK T1059.004 Command and Scripting Interpreter: Unix Shell.

Смягчение

Репозиторий заархивирован и доступен только для чтения, последняя версия в npm — уязвимая 1.0.1, и исправленный релиз не будет опубликован. Смягчение — удаление:

  • Прекратите использовать пакет. Он не поддерживается, публично уязвим с марта 2026 года и не будет исправлен.
  • Если его необходимо оставить, запускайте его в контейнере или виртуальной машине от имени непривилегированного пользователя, без учётных данных в его окружении и без сетевого выхода за пределы диапазона сканирования, и не предоставляйте к нему доступ через сетевой транспорт.
  • Оберните или форкните сервер, чтобы проверять target на соответствие шаблону IP/CIDR/имени хоста и вносить additionalFlags в белый список до того, как что-либо из этого попадёт в командную строку.

Исправление для тех, кто форкнет проект, — вызывать execFile("nmap", [...args]) с вектором аргументов вместо построения строки для exec. Проверка содержимого, а не только проверка типов Zod, — это основное требование.

NIST SP 800-53r5 SI-10; OWASP ASVS v4 §5.3.8; меры смягчения CWE-78 M1 и M2.

Хронология

ДатаСобытие
2026-03-03CVE-2026-3484 / GHSA-xc68-rrqc-qgq3 опубликованы VulDB — первоначальное публичное раскрытие, другим исследователем
2026-05-29Независимо выявлено при анализе исходного кода опубликованного tarball, без знания о мартовском уведомлении
2026-06-01Динамически проверено через MCP stdio в изолированном контейнере
2026-06-13Дубликат выявлен при дедупликации перед отправкой; подтверждено, что репозиторий заархивирован, а Private Vulnerability Reporting недоступен. Внутренний вердикт: не подавать
2026-07-13MITRE CNA-LR тем не менее присваивает CVE-2026-52616, указывая s1ko как первооткрывателя
2026-08-22Опубликован этот отчёт, документирующий дубликат

Ссылки

  • Первоначальное уведомление — https://github.com/advisories/GHSA-xc68-rrqc-qgq3
  • Первоначальный CVE — https://nvd.nist.gov/vuln/detail/CVE-2026-3484
  • Пакет npm — https://www.npmjs.com/package/mcp-nmap-server
  • Репозиторий (заархивирован) — https://github.com/PhialsBasement/nmap-mcp-server
  • Прецедент для модели угроз MCP — CVE-2026-5058 (aws-mcp-server)

Сопутствующие уведомления из того же исследовательского прохода: CVE-2026-52617, CVE-2026-52618.

Лицензия

MIT — см. LICENSE.

Скачать инструмент