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

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

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

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

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

Категории

Все категории
Loading categories
CVE2026-42926 — Контролируемая лаборатория инъекции HTTP/2-фреймов NGINX для валидации патча CVE-2026-42926 и исследований в области защиты. | Kitploit
Инструменты/GitHubGitHub/ikarolaborda/cve2026-42926
Оборонительные ИнструментыАнализ уязвимостейАудит конфигурацииВеб-безопасностьОбучение и ОбразованиеЛаборатории и Практика
GitHubikarolaborda/cve2026-42926

CVE2026-42926

Контролируемая лаборатория инъекции HTTP/2-фреймов NGINX для валидации патча CVE-2026-42926 и исследований в области защиты.

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

Популярное

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

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

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

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

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

CVE-2026-42926 NGINX HTTP/2 Frame Injection Lab

Контролируемая лаборатория по кибербезопасности для валидации и сравнения поведения, связанного с CVE-2026-42926 — проблемой внедрения (инъекции) HTTP/2-фреймов, затрагивающей определённые версии NGINX при использовании уязвимой конфигурации прокси.

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

Классификация: Внедрение HTTP/2-фреймов Затронутые версии: NGINX 1.29.4 – 1.30.0 Исправленные версии: NGINX 1.30.1+ / 1.31.0+

Предупреждение по безопасности

Используйте этот проект только в изолированной лабораторной среде, которая вам принадлежит или на тестирование которой у вас есть явное разрешение.

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

Рекомендуемая изоляция:

  • Локальная виртуальная машина
  • Одноразовый контейнер
  • Частный тестовый хост
  • Немаршрутизируемая лабораторная сеть

Что делает эта лаборатория

Лаборатория проверяет, соответствуют ли целевой бинарный файл NGINX и конфигурация условиям, необходимым для воспроизведения проблемы, отправляет специально сформированный запрос на тестовый location и анализирует контролируемый логгер upstream на предмет признаков того, что внедрённые байты, похожие на HTTP/2-фреймы, достигли upstream-стороны.

Обычная схема валидации:

  1. Запустите ту же уязвимую прокси-конфигурацию с уязвимой сборкой NGINX.
  2. Запустите ту же уязвимую прокси-конфигурацию с исправленной сборкой NGINX.
  3. Сравните свидетельства upstream и вердикты скрипта.

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

  • Уязвимая сборка: могут наблюдаться признаки внедрения.
  • Исправленная сборка: никаких признаков внедрения наблюдаться не должно.

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

ФайлОписание
README.mdДокументация проекта.
LICENSEЛицензия MIT.
DockerfileСоздаёт самодостаточный образ лаборатории с NGINX 1.29.4, PHP CLI/cURL, Python и скриптами проекта.
docker-compose.ymlЗапускает уязвимый сервис NGINX, логгер upstream-фреймов и опциональный валидационный runner.
cve_2026_42926_lab.phpОсновной скрипт валидации лаборатории. Проверяет предусловия версии/конфигурации, отправляет специально сформированный запрос, анализирует логи upstream и выносит вердикт.
nginx_vulnerable.confПример конфигурации NGINX, содержащий уязвимый шаблон проксирования, используемый для сравнения уязвимой и исправленной версий.
docker/nginx_vulnerable.docker.confDocker-специфичная конфигурация NGINX, использующая тот же уязвимый шаблон и обнаружение сервисов Compose.
nginx_config_verify.shВспомогательный скрипт, проверяющий, содержит ли целевая конфигурация NGINX требуемый уязвимый шаблон прокси.
upstream_frame_logger.pyКонтролируемый логгер сырых HTTP/2-фреймов upstream, используемый для захвата и анализа фреймов, полученных от NGINX.
run_lab_comparison.shОркестрирует сравнительные запуски уязвимой и исправленной версий.
.dockerignoreИсключает сгенерированные логи и метаданные IDE из контекста сборки Docker.

Требования

  • Среда командной строки Linux или macOS
  • bash
  • python3
  • php
  • Расширение PHP cURL
  • Тестовые бинарные файлы NGINX для версий, которые вы хотите сравнить
  • Разрешение на привязку настроенного порта прослушивания NGINX

Для контейнеризированного рабочего процесса:

  • Docker
  • Docker Compose v2

Пример конфигурации слушает порт 80, что обычно требует привилегий root. Для непривилегированной локальной лаборатории измените listen 80; в nginx_vulnerable.conf на доступный высокий порт, например 8080, и используйте соответствующий целевой URL в команде PHP.

Настройка

Сделайте скрипты исполняемыми:

chmod +x nginx_config_verify.sh run_lab_comparison.sh

Убедитесь, что PHP поддерживает cURL:

php -m | grep -i curl

Проверьте, что каждый бинарный файл NGINX может вывести свою версию:

/path/to/nginx -V

Конфигурация лаборатории

Предоставленный файл nginx_vulnerable.conf содержит необходимый тестовый шаблон:

location /exploit {
    proxy_pass http://127.0.0.1:8081;
    proxy_http_version 2;
    proxy_set_body $request_body;
    proxy_set_header Host $host;
    proxy_set_header Content-Length $content_length;
}

Важные детали:

  • proxy_http_version 2 включает проксирование HTTP/2 к логгеру upstream.
  • proxy_set_body $request_body использует тело запроса, контролируемое клиентом.
  • client_max_body_size 20m позволяет передавать сформированное тело запроса размером 16 МиБ, используемое скриптом валидации.
  • Логгер upstream по умолчанию слушает на 127.0.0.1:8081.

Docker-специфичная конфигурация в docker/nginx_vulnerable.docker.conf сохраняет тот же уязвимый шаблон прокси, но слушает на контейнерном порту 8080 и проксирует к имени сервиса Compose upstream:8081.

Быстрый старт в Docker: Лаборатория NGINX 1.29.4

Dockerfile собирает NGINX 1.29.4 из исходников и устанавливает инструментарий PHP/Python, необходимый для лаборатории. Затем Compose запускает три сервиса из одного образа:

  • upstream: логгер сырых HTTP/2-фреймов
  • nginx: уязвимый NGINX 1.29.4, использующий docker/nginx_vulnerable.docker.conf
  • runner: одноразовая команда валидации PHP

Соберите образ лаборатории:

docker compose build

Запустите логгер upstream и уязвимый NGINX:

docker compose up -d upstream nginx

Проверьте встроенную версию NGINX:

docker compose exec nginx nginx -V

Запустите скрипт валидации внутри сети Compose:

docker compose --profile run run --rm runner

Runner использует следующие аргументы внутри контейнера:

php /lab/cve_2026_42926_lab.php \
  http://nginx:8080/exploit \
  /lab/upstream_logs \
  /lab/nginx_config_verify.sh \
  /usr/local/nginx/sbin/nginx \
  /lab/docker/nginx_vulnerable.docker.conf \
  /exploit

Сгенерированные логи upstream записываются в директорию хоста:

./upstream_logs/

Сервис NGINX также доступен с хоста по адресу:

http://localhost:8080/version

Остановите и удалите контейнеры лаборатории:

docker compose down

Быстрый старт: Одиночный запуск валидации

Запустите контролируемый логгер upstream:

python3 upstream_frame_logger.py 8081 ./upstream_logs

В другом терминале запустите NGINX с примером конфигурации:

/path/to/nginx -c "$PWD/nginx_vulnerable.conf"

Запустите скрипт валидации:

php cve_2026_42926_lab.php \
  http://localhost/exploit \
  ./upstream_logs \
  ./nginx_config_verify.sh \
  /path/to/nginx \
  "$PWD/nginx_vulnerable.conf" \
  /exploit

Остановите NGINX после запуска:

/path/to/nginx -s stop

Если вы изменили порт прослушивания NGINX, обновите первый аргумент. Например:

php cve_2026_42926_lab.php http://localhost:8080/exploit ./upstream_logs ./nginx_config_verify.sh /path/to/nginx "$PWD/nginx_vulnerable.conf" /exploit

Быстрый старт: Сравнение уязвимой и исправленной версий

Задайте пути к двум бинарным файлам NGINX и запустите сборочный скрипт сравнения:

VULNERABLE_NGINX=/usr/local/nginx_1.29.4/sbin/nginx \
PATCHED_NGINX=/usr/local/nginx_1.30.1/sbin/nginx \
bash run_lab_comparison.sh

Опциональные переопределения конфигурации:

VULNERABLE_NGINX=/path/to/vulnerable/nginx \
PATCHED_NGINX=/path/to/patched/nginx \
VULNERABLE_CONFIG="$PWD/nginx_vulnerable.conf" \
PATCHED_CONFIG="$PWD/nginx_vulnerable.conf" \
bash run_lab_comparison.sh

Скрипт сравнения записывает:

  • vulnerable_result.txt
  • patched_result.txt
  • upstream_logs_vulnerable/
  • upstream_logs_patched/

Ручная проверка конфигурации

Используйте nginx_config_verify.sh напрямую, когда нужно просто проверить, содержит ли конфигурация уязвимый шаблон:

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