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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-92392 — Проверяет локальные сборки curl/libcurl на подверженность use-after-free при загрузке по HTTP/2 (CVE-2026-92392), с пассивной инвентаризацией, сканированием смонтированных образов и ограниченной проверкой PoC через loopback. | Kitploit
Инструменты/GitHubGitHub/ashu7ank/cve-2026-92392
Оборонительные ИнструментыСканеры уязвимостейБезопасность контейнеровДинамический анализ (песочница)Анализ уязвимостейСбор информацииВиртуализация для безопасностиФаззинг
GitHubashu7ank/cve-2026-92392

CVE-2026-92392

Проверяет локальные сборки curl/libcurl на подверженность use-after-free при загрузке по HTTP/2 (CVE-2026-92392), с пассивной инвентаризацией, сканированием смонтированных образов и ограниченной проверкой PoC через loopback.

121 дней назадЕщё не проверено

Популярное

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

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

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

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

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

Проверка подверженности CVE-2026-92392 в curl/libcurl и POC

cve_2026_92392_check.py оценивает локальные артефакты curl и libcurl на предмет CVE-2026-92392 — use-after-free при загрузке по HTTP/2 в curl/libcurl.

Инструмент поддерживает пассивную локальную инвентаризацию, оценку по предоставленным баннерам, сканирование смонтированных образов без их выполнения и ограниченную проверку протокола HTTP/2 через loopback. Проверка носит защитный характер и не является оружием. В ней нет командной полезной нагрузки, шелл-кода, манипуляций с адресами памяти, логики утечки информации или RCE-полезной нагрузки.

Активная проверка привязывается только к 127.0.0.1, не принимает удалённый целевой URL или хост и выполняет только выбранный локальный бинарный файл curl.

Что устанавливает эта проверка

Проверка разделяет четыре разных уровня доказательств:

Уровень доказательстваЧто он устанавливаетЧто он не устанавливает
Классификация сборкиНаходится ли артефакт curl/libcurl с квалифицированной версией вне затронутого upstream-диапазона, затронут upstream с неизвестным состоянием патча вендора или подтверждённо затронут на основе предоставленных данных о состоянии патчаИспользует ли приложение фактически затронутый путь загрузки по HTTP/2
Контекст экспозиции во время выполненияУказывают ли предоставленные факты о приложении на то, что загрузки по HTTP/2 могут достичь контролируемой злоумышленником конечной точкиБыла ли уязвимость вызвана
Стимуляция протоколаДоставил ли локальный loopback-стенд оба документированных варианта сброса при двух загрузках в одном соединении HTTP/2Use-after-free, причину сбоя или выполнение кода
Результат санитайзера с атрибуцией к CVEНаблюдались ли одновременно последовательность-кандидат, heap-use-after-free от AddressSanitizer, идентичность затронутого upstream-артефакта и совпадающий стек HTTP/2Надёжность или практическую эксплуатируемость на другой системе

Чистый прогон, неполный прогон протокола или прогон санитайзера без сбоя не доказывают, что сборка безопасна.

Краткое описание уязвимости

CVE-2026-92392 затрагивает обработку загрузки по HTTP/2 в curl/libcurl. Во время загрузки затронутая сборка может обработать HTTP/2 RST_STREAM, несущий либо REFUSED_STREAM, либо HTTP_1_1_REQUIRED. После этого буферизованные данные загрузки могут быть разобраны как новый запрос после того, как состояние HTTP/2 исходной передачи было отсоединено. Последующий обратный вызов HTTP/2 может разыменовать устаревший указатель Curl_easy.

Сравнение REA, использованное для пересмотра этой проверки, подтвердило соответствующее различие в порядке очистки:

  1. Затронутый артефакт вызывает Curl_conn_ev_data_done, обрабатывает ожидающие дескрипторы и только затем вызывает Curl_req_done.
  2. Curl_req_done достигает req_flush, тогда как путь data-done HTTP/2 уже очистил контекст потока.
  3. Оставшиеся буферизованные данные загрузки могут создать более поздний поток HTTP/2, связанный с тем же сырым указателем easy-handle.
  4. Исправленная реализация выполняет Curl_req_done до Curl_conn_ev_data_done, устраняя этот устаревший порядок.

Это доказательство реализации, поддерживающее модель доказательства проверки. Состояние патча вендора по-прежнему требует независимой проверки.

Затронутые upstream-релизы

Upstream-рекомендация определяет уязвимую реализацию как введённую в curl 8.12.0. Проверка классифицирует upstream-релизы следующим образом:

Условие релизаКлассификация
Раньше 8.12.0NOT AFFECTED
С 8.12.0 по 8.22.0, исключая исправленные бэкпортыЗатронут upstream
Ветка 8.14 начиная с 8.14.3Исправленный бэкпорт
Ветка 8.16 начиная с 8.16.2Исправленный бэкпорт
Ветка 8.20 начиная с 8.20.2Исправленный бэкпорт
8.23.0 или позжеNOT AFFECTED
Development, snapshot, nightly или неоднозначная версияINDETERMINATE

Вендор может выполнить бэкпорт исправления, не меняя строку upstream-версии curl. Поэтому затронутая upstream-версия является инвентаризационным доказательством, а не окончательным доказательством того, что сборка вендора не пропатчена.

Используйте --patch-state только тогда, когда состояние семантического исправления в downstream было проверено через рекомендации вендора, журналы изменений пакетов, сравнение исходного кода или другой надёжный метод на уровне артефакта.

Значение --patch-stateЗначение
unknownПо умолчанию. Уязвимая версия upstream выдаёт UPSTREAM-AFFECTED VERSION.
absentОператор независимо подтвердил отсутствие исправления в downstream. Уязвимая сборка с поддержкой HTTP/2 выдаёт AFFECTED BUILD.
presentОператор независимо подтвердил наличие семантического исправления в downstream. Это утверждение оператора, а не автоматическое доказательство бинарной эквивалентности исправлению в upstream curl.

Требования

  • Python 3.10 или новее.
  • Никаких зависимостей Python, кроме стандартной библиотеки.
  • Локальный исполняемый файл curl для --poc.
  • Подтверждённая поддержка HTTP/2 для осмысленного активного зондирования.
  • Сборка curl, инструментированная AddressSanitizer, для --poc-proof asan.
  • Команда openssl только при использовании --tls.
  • Собственный исполняемый файл curl в формате ELF или Mach-O с квалифицированным продуктом для активного зондирования.

Режим активного PoC отклоняет скрипты, обёртки, неопознанные собственные исполняемые файлы и бинарные файлы PE/Windows. Пассивная оценка остаётся доступной для баннеров и смонтированных файловых систем.

Быстрый старт

Проверьте бинарный файл curl, найденный в PATH:

python3 cve_2026_92392_check.py

Emit JSON:

python3 cve_2026_92392_check.py --json

Запустите внутренние самотесты:

python3 cve_2026_92392_check.py --self-test
python3 -O cve_2026_92392_check.py --self-test

Проверьте выбранный исполняемый файл curl и общую библиотеку libcurl:

python3 cve_2026_92392_check.py \
  --curl-binary /opt/curl/bin/curl \
  --libcurl-path /opt/curl/lib/libcurl.so \
  --json

Оцените доверенный баннер curl без выполнения бинарного файла:

python3 cve_2026_92392_check.py \
  --version-string 'curl 8.12.0 libcurl/8.12.0 nghttp2/1.61.0' \
  --json

Простая версия, такая как 8.12.0, не принимается в качестве подтверждённого свидетельства идентичности curl/libcurl.

Рабочий процесс удалённой инвентаризации

Проверяющий намеренно не обращается к удалённым хостам. Получите баннер через авторизованный административный канал, сохраните его локально, а затем оцените его локально:

ssh [email protected] 'curl --version' > host-curl-version.txt

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use unknown \
  --untrusted-upload unknown \
  --https-certificate unknown \
  --json

Если проверка приложения или доверенная трассировка устанавливает, что загрузки используют HTTP/2, могут достичь контролируемой злоумышленником конечной точки и принимают её HTTPS-сертификат, укажите эти факты явно:

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use yes \
  --untrusted-upload yes \
  --https-certificate yes \
  --patch-state unknown \
  --json

Для cleartext h2c используйте --https-certificate not-applicable.

--http2-use yes указывает на использование HTTP/2 во время выполнения. Это не доказывает, что артефакт был скомпилирован с поддержкой HTTP/2. Аналогично, --untrusted-upload yes описывает поток данных приложения, тогда как --https-certificate yes фиксирует отдельное условие доверия HTTPS.

Оценка смонтированного образа

Используйте --root для сканирования смонтированного образа контейнера, образа виртуальной машины или извлечённой файловой системы без выполнения обнаруженных файлов:

python3 cve_2026_92392_check.py \
  --root /mnt/rootfs \
  --json
Скачать инструмент