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

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

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

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

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

Категории

Все категории
Loading categories
ai-vuln-rediscovery-nginx-cve-2026-42945 — Воспроизводимое повторное обнаружение уязвимости CVE-2026-42945 в nginx с помощью ИИ, включая технический анализ, триггер PoC и проверку патча для переполнения буфера в куче. | Kitploit
Инструменты/GitHubGitHub/chamsbouzaiene/ai-vuln-rediscovery-nginx-cve-2026-42945
Анализ уязвимостейВеб-безопасностьСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИЭксплуатация Бинарных Файлов
GitHubchamsbouzaiene/ai-vuln-rediscovery-nginx-cve-2026-42945

ai-vuln-rediscovery-nginx-cve-2026-42945

Воспроизводимое повторное обнаружение уязвимости CVE-2026-42945 в nginx с помощью ИИ, включая технический анализ, триггер PoC и проверку патча для переполнения буфера в куче.

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

Популярное

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

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

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

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

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

AI-ассистированное повторное обнаружение CVE-2026-42945 в nginx

В этом репозитории документирован воспроизводимый эксперимент по повторному обнаружению уязвимости с помощью AI в модуле ngx_http_rewrite_module nginx, впоследствии связанной с CVE-2026-42945.

Эксперимент намеренно узок. Уязвимый файл src/http/ngx_http_script.c был напрямую предоставлен модели для аудита. Это не означает, что AI-система автономно нашла проблему во всей кодовой базе nginx с нуля.

Краткое описание

Аудируемая ошибка — это переполнение кучи (heap buffer overflow), вызванное устаревшим состоянием скриптового движка при обработке переписывания (rewrite) в nginx.

На высоком уровне:

  1. Замена в rewrite, содержащая ?, устанавливает e->is_args = 1.
  2. В уязвимом коде e->is_args не очищается после завершения переписывания.
  3. Последующее выражение set, if или rewrite, копирующее безымянную подстановку из регулярного выражения, например $1, может выделить буфер для назначения так, как если бы подстановка копировалась без изменений.
  4. Затем этап записи видит устаревшее e->is_args = 1 и применяет URI-экранирование к подстановке.
  5. Экранирование может увеличить байты, такие как пробелы, с одного до трёх байтов, поэтому запись превышает размер, вычисленный на этапе подсчёта длины.

Локальное воспроизведение с AddressSanitizer подтверждает переполнение кучи в:

ngx_escape_uri
ngx_http_script_copy_capture_code
ngx_http_rewrite_handler

Содержимое репозитория

.
├── README.md
├── LICENSE
├── prompts/
│   ├── audit_prompt.md
│   └── poc_prompt.md
├── poc/
│   ├── trigger.py
│   ├── nginx.conf
│   ├── reproduce.sh
│   └── expected_output.txt
├── docs/
│   ├── technical-analysis.md
│   ├── vulnerability-breakdown.md
│   └── methodology.md
└── screenshots/
    └── asan-crash.png

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

PoC разработан для локальной сборки уязвимого nginx с включённым AddressSanitizer. Он запускает nginx на 127.0.0.1:18080, отправляет специально сформированный запрос локальному серверу и выводит свидетельства краха.

1. Сборка уязвимого nginx с ASan

Используйте дерево исходников уязвимой версии nginx. Эксперимент был проверен на nginx 1.30.0, собранном с clang и ASan:

./auto/configure \
  --prefix=/tmp/nginx-asan-poc \
  --with-cc-opt='-O0 -g -fsanitize=address -fno-omit-frame-pointer' \
  --with-ld-opt='-fsanitize=address'

make -j"$(getconf _NPROCESSORS_ONLN 2>/dev/null || sysctl -n hw.ncpu)"

2. Запуск PoC

Из этого репозитория:

NGINX_BIN=/path/to/vulnerable/nginx/objs/nginx ./poc/reproduce.sh

Если этот репозиторий размещён непосредственно внутри дерева исходников nginx, используемого для проверки, скрипт также автоматически найдёт ../../objs/nginx.

3. Ожидаемый результат

Успешное воспроизведение выводит отчёт ASan, похожий на:

ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
    #0 ngx_escape_uri ngx_string.c:1687
    #1 ngx_http_script_copy_capture_code ngx_http_script.c:1399
    #2 ngx_http_rewrite_handler ngx_http_rewrite_module.c:180

См. poc/expected_output.txt.

Скриншот краха ASan

Минимальная конфигурация для срабатывания

Конфигурация nginx, используемая PoC, намеренно мала:

location / {
    rewrite ^(.*) /new?c=1;
    set $myvar $1;
    return 200 "$myvar\n";
}

Первый rewrite устанавливает e->is_args, потому что замена содержит ?. Последующий set вычисляет $1, пока это устаревшее состояние всё ещё присутствует.

Официальный патч

Минимальный патч сбрасывает флаг состояния аргументов скриптового движка после завершения переписывания по регулярному выражению:

e->is_args = 0;
e->quote = 0;

В дереве исходников, использованном для этого эксперимента, исправление присутствует в коммите:

524977e7c534e87e5b55739fa74601c9f1102686
Rewrite: fixed escaping and possible buffer overrun

Ключевой момент — не размер патча, а восстанавливаемый им инвариант состояния: этап подсчёта длины и этап записи должны быть согласованы относительно того, копируются ли подстановки как URI-аргументы.

Прозрачность эксперимента

В этом эксперименте использовался пограничный кодирующий агент (frontier coding agent) в качестве ассистента аудита. Подсказка (prompt) явно предписывала модели сосредоточиться на проблемах безопасности памяти в src/http/ngx_http_script.c и обращать особое внимание на несоответствия длины/записи в двухпроходном алгоритме.

Важные ограничения:

  • Уязвимый исходный файл был предоставлен напрямую.
  • Подсказка аудита была сильно нацелена на данный класс ошибок.
  • Модель имела доступ к истории локального репозитория во время проверки.
  • Результат следует интерпретировать как направленное повторное обнаружение, а не как автономный поиск ошибок.
  • PoC демонстрирует только свидетельства краха/ASan; это не эксплуатационный эксплойт.

Точные подсказки включены в prompts/audit_prompt.md и prompts/poc_prompt.md.

Ответственное использование

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

Лицензия

Документация и PoC-инструментарий в этом репозитории выпущены под лицензией MIT. nginx не включён и регулируется собственной лицензией.

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