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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/kha-beleh/poc-cve-2025-69420
Анализ уязвимостейЭксплуатацияФаззингКриптографияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubkha-beleh/poc-cve-2025-69420

PoC-CVE-2025-69420

Crash-only PoC для CVE-2025-69420, демонстрирующий уязвимость type-confusion в проверке ответов TimeStamp в OpenSSL через некорректные атрибуты ESS signing-certificate.

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

Популярное

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

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

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

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

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

CVE-2025-69420 — PoC несоответствия типов в ответе TimeStamp от OpenSSL

Лабораторный воспроизводитель, предназначенный только для аварийного завершения, для CVE-2025-69420 в OpenSSL. PoC загружает валидный ответ TimeStamp Response по RFC 3161, заменяет в памяти подписанный атрибут ESS с V_ASN1_SEQUENCE на V_ASN1_NULL и вызывает TS_RESP_verify_response().

В затронутой сборке ossl_ess_get_signing_cert_v2() или ossl_ess_get_signing_cert() обращается к объединению ASN1_TYPE как к последовательности, не проверяя активный тип. UBSan сообщает о доступе к члену через нулевой указатель ASN1_STRING. Ожидаемое воздействие — завершение процесса / отказ в обслуживании; данный репозиторий не содержит логики выполнения кода.

Подтверждённый результат

Приведённый тестовый вывод подтверждает проблему:

root@kitploit:~
runtime error: member access within null pointer of type 'struct ASN1_STRING'
#0 ossl_ess_get_signing_cert_v2
#1 ts_check_signing_certs
#2 TS_RESP_verify_signature
#3 int_ts_RESP_verify_token
#4 TS_RESP_verify_response

Это соответствует описанию уязвимости: некорректный ответ TimeStamp Response достигает TS_RESP_verify_response(), а атрибут ESS signing-certificate типа, отличного от V_ASN1_SEQUENCE, вызывает недопустимое или нулевое разыменование указателя.

Область применения

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

Требования

  • Linux и GCC
  • Затронутая сборка OpenSSL, скомпилированная с ASan и UBSan
  • Заголовочные файлы разработки OpenSSL в дереве сборки

Путь сборки по умолчанию:

root@kitploit:~
/path/to/openssl-3.0.7-asan

При необходимости переопределите его:

root@kitploit:~
export OPENSSL_BUILD=/path/to/openssl-asan-build

Использование

root@kitploit:~
git clone https://github.com/Kha-Beleh/PoC-CVE-2025-69420.git
cd PoC-CVE-2025-69420

export OPENSSL_BUILD=/path/to/openssl-3.0.7-asan
make prepare
make build
make run

Или запустите всё по отдельности:

root@kitploit:~
./scripts/prepare.sh
./scripts/build.sh
./scripts/run.sh

prepare.sh использует минимальный openssl.cnf из репозитория, поэтому он не зависит от отсутствующего $OPENSSL_BUILD/ssl/openssl.cnf.

Ожидаемый вывод на затронутой сборке

root@kitploit:~
[+] Loaded valid TimeStamp Response
[+] Found attribute: id-smime-aa-signingCertificateV2
[+] Original ASN.1 type: 16
[+] Attribute changed to V_ASN1_NULL
[+] Calling TS_RESP_verify_response()
crypto/ts/ts_rsp_verify.c:...: runtime error: member access within null pointer of type 'struct ASN1_STRING'
    #0 ... in ossl_ess_get_signing_cert_v2
    #1 ... in ts_check_signing_certs
    #2 ... in TS_RESP_verify_signature
    #3 ... in int_ts_RESP_verify_token
    #4 ... in TS_RESP_verify_response

Точные адреса и номера строк зависят от сборки. При UBSAN_OPTIONS=halt_on_error=1 процесс завершается при первой обнаруженной неопределённой операции.

Ожидаемый результат на исправленной сборке

Некорректный атрибут должен быть чисто отклонён без срабатывания санитайзера и без аварийного завершения процесса. Затем PoC выводит:

root@kitploit:~
[+] Malformed response rejected without a crash

Техническая интерпретация

Исходное значение типа атрибута 16 — это V_ASN1_SEQUENCE. PoC изменяет его на V_ASN1_NULL. В затронутой реализации код впоследствии обрабатывает член объединения как value.sequence и разыменовывает его. Поскольку активный член не является последовательностью, UBSan обнаруживает доступ к члену через нулевой ASN1_STRING *.

Это несоответствие типов / отсутствие проверки исключительного состояния, а не переполнение буфера в куче или стеке.

Файлы

  • poc.c — минимальный воспроизводитель
  • scripts/prepare.sh — генерирует ключ TSA, сертификат, запрос и валидный ответ
  • scripts/build.sh — компилирует с использованием ASan/UBSan сборки OpenSSL
  • scripts/run.sh — запускает с настройками санитайзера
  • openssl.cnf — минимальная конфигурация провайдера/запроса
  • tsa.conf — локальная конфигурация TSA по RFC 3161
  • evidence/confirmed-output.txt — сокращённый подтверждённый след санитайзера

Ссылки

  • NVD: CVE-2025-69420
  • Исправление OpenSSL: коммит 4e254b48ad93cc092be3dd62d97015f33f73133a
Скачать инструмент