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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/ssh-pur66/cve-replay
Оборонительные ИнструментыСтатический анализАнализ уязвимостейВеб-безопасностьСтатьи и ИсследованияОбучение и ОбразованиеЛаборатории и Практика
GitHubssh-pur66/cve-replay

cve-replay

Независимая офлайн-регрессия CVE-2026-44431 для зафиксированных версий urllib3 с указанием авторства первоначального исследователя.

РепозиторийСайт
33 дней назадЕщё не проверено

Популярное

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

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

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

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

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

CVE Replay: граница заголовка перенаправления

CVE-2026-44431 · urllib3 2.6.3 → 2.7.0 · воспроизведено 27 сентября 2026 г.

Запрос несёт три конфиденциальных заголовка к одному origin. Перенаправление меняет пункт назначения. Сохранит ли их следующий запрос?

Это независимое регрессионное исследование запускает реальную реализацию перенаправления из двух точных релизов urllib3. Версия 2.6.3 сохраняет все три заголовка через затронутый низкоуровневый API. Версия 2.7.0 удаляет их. Безобидный заголовок сохраняется, и обычные запросы по-прежнему работают.

Измеренный результат

Фикстураurllib3 2.6.3urllib3 2.7.0
Низкоуровневое кросс-доменное перенаправление3 конфиденциальных заголовка сохранены0 сохранено
Тот же случай с именами в нижнем регистре3 сохранены0 сохранено
Контроль через высокоуровневый API0 сохранено0 сохранено
Прямой ответ 2003 сохранены, как и задумано3 сохранены, как и задумано
Перенаправление явно отключеноОдин вызов; возвращён 302Один вызов; возвращён 302
Пользовательский набор удаления добавляет безобидный маркерВсе 4 заголовка сохраненыВсе 4 удалены

12/12 ожиданий сценариев пройдено. Каждый сценарий также проверяет статус ответа, количество транспортных вызовов, исходный набор заголовков, результат для безобидного заголовка и то, что заголовки вызывающей стороны не были изменены. Уязвимый исход — это ожидаемый базовый результат, а не пройденная проверка безопасности.

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

Опубликованная проблема

Уведомление upstream, опубликованное 7 мая 2026 г., описывает проблему раскрытия информации в проксируемом низкоуровневом пути перенаправления urllib3. В нём указаны версии >=1.23, <2.7.0 как затронутые. Вызов ProxyManager.connection_from_url(...).urlopen(..., assert_same_host=False) мог переносить настроенные конфиденциальные заголовки в перенаправленный запрос к другому origin. Высокоуровневый API менеджера уже удалял их.

Исправление upstream применяет Retry.remove_headers_on_redirect перед рекурсивным низкоуровневым запросом. Наш случай с заголовками в нижнем регистре следует вниманию регрессионного теста upstream к регистру имён заголовков. Случай с пользовательским удалением проверяет, что правило учитывает настроенный набор, а не только три имени по умолчанию.

В уведомлении указаны christos-cantina-security как сообщивший, illia-v как координатор и sethmlarson как проверяющий исправление. Вклад Sergio Rodriguez здесь — это независимый офлайн-стенд и анализ до/после. Это воспроизведение их опубликованного CVE.

Воспроизведение фикстуры

Используйте Python 3.10 или новее. Установка через pip или виртуальное окружение не требуются: каждая версия импортируется напрямую из своего чисто-Python wheel-файла в свежем изолированном подпроцессе.

Из корня репозитория портфолио:

python -B ./labs/cve-replay/run_replay.py --fetch
python -B ./labs/cve-replay/run_replay.py

Первая команда загружает два точных wheel-файла в игнорируемый каталог лаборатории .cache/wheels/ и сверяет их хеши SHA-256 с манифестом. Вторая команда использует этот кеш без загрузки. Для отдельной копии исходников запустите python -B run_replay.py --fetch, затем ту же команду без --fetch. --cache принимает другой локальный каталог кеша.

Где начинается мок

HTTPConnectionPool._make_request заменяется на транспорт с двумя ответами: 302 с фиксированным location, затем 200. Фикстура захватывает аргументы, достигающие этой границы. Разбор, политика повторов, фильтрация заголовков и рекурсивная обработка перенаправлений в urllib3 выполняются без изменений из выбранного wheel-файла.

Все пункты назначения — фиксированные зарезервированные имена .invalid; все значения заголовков начинаются с DUMMY. Создание сокетов и функции DNS немедленно вызывают исключения. Проверка поддержки IPv6 во время импорта библиотеки отклоняется и фиксируется отдельно; сценарии воспроизведения не выполняют никаких сетевых операций. Нет ни слушающего сервера, ни живой цели.

Это проверяет обработку аргументов перенаправления. Это не измеряет сквозной прокси-трафик. Версия 2.7.0 — первое исправление для этого конкретного CVE; это историческое сравнение не является рекомендацией выбирать её вместо более новых поддерживаемых релизов.

Источники и атрибуция

  • Уведомление мейнтейнера / CVE-2026-44431
  • Исправление upstream и регрессионные тесты
  • Исходники затронутого релиза
  • Исходники исправленного релиза
  • Примечания к релизу urllib3 2.7.0
  • Закреплённые URL пакетов, метаданные PyPI и хеши

Скрипты фикстуры и анализ — оригинальная работа для портфолио. urllib3 — проект upstream, распространяемый под его лицензией MIT; его код и релизные wheel-файлы не распространяются в архиве исходников портфолио. Они загружаются отдельно с PyPI и импортируются без изменений для эксперимента.

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