Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
PoC-CVE-2025-69420 — Crash-only PoC para CVE-2025-69420 que demonstra uma vulnerabilidade de confusão de tipos na verificação de Resposta TimeStamp do OpenSSL por meio de atributos malformados de certificado de assinatura ESS. | Kitploit
Ferramentas/GitHubGitHub/kha-beleh/poc-cve-2025-69420
Análise de VulnerabilidadesExploraçãoFuzzingCriptografiaAprendizado e EducaçãoExploração de Binários
GitHubkha-beleh/poc-cve-2025-69420

PoC-CVE-2025-69420

Crash-only PoC para CVE-2025-69420 que demonstra uma vulnerabilidade de confusão de tipos na verificação de Resposta TimeStamp do OpenSSL por meio de atributos malformados de certificado de assinatura ESS.

Ver Repositório
9há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-69420 — PoC de confusão de tipo na resposta de carimbo de tempo do OpenSSL

Reprodutor de laboratório somente de travamento para CVE-2025-69420 no OpenSSL. O PoC carrega uma Resposta de Carimbo de Tempo RFC 3161 válida, altera o atributo ESS assinado de V_ASN1_SEQUENCE para V_ASN1_NULL em memória e chama TS_RESP_verify_response().

Em um build afetado, ossl_ess_get_signing_cert_v2() ou ossl_ess_get_signing_cert() acessa a união ASN1_TYPE como uma sequência sem validar o tipo ativo. O UBSan relata acesso a membro através de um ponteiro nulo ASN1_STRING. O impacto esperado é a terminação do processo / negação de serviço; este repositório não contém lógica de execução de código.

Resultado confirmado

A saída de teste fornecida confirma o problema:

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

Isso corresponde à descrição da vulnerabilidade: uma Resposta de Carimbo de Tempo malformada chega a TS_RESP_verify_response(), e um atributo de certificado de assinatura ESS de um tipo diferente de V_ASN1_SEQUENCE causa uma desreferência de ponteiro inválida ou nula.

Escopo

Teste apenas em um ambiente isolado contra um build do OpenSSL que você possua ou esteja autorizado a avaliar. Este é um reprodutor somente de travamento.

Requisitos

  • Linux e GCC
  • Build afetado do OpenSSL compilado com ASan e UBSan
  • Cabeçalhos de desenvolvimento do OpenSSL na árvore de build

Caminho de build padrão:

/path/to/openssl-3.0.7-asan

Substitua-o quando necessário:

export OPENSSL_BUILD=/path/to/openssl-asan-build

Uso

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

Ou execute tudo separadamente:

./scripts/prepare.sh
./scripts/build.sh
./scripts/run.sh

O prepare.sh usa o openssl.cnf mínimo do repositório, portanto não depende de um $OPENSSL_BUILD/ssl/openssl.cnf ausente.

Saída esperada em um build afetado

[+] 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

Os endereços exatos e números de linha variam conforme o build. Com UBSAN_OPTIONS=halt_on_error=1, o processo termina na primeira operação indefinida detectada.

Resultado esperado em um build corrigido

O atributo malformado deve ser rejeitado de forma limpa, sem achado de sanitizer ou travamento do processo. O PoC então imprime:

[+] Malformed response rejected without a crash

Interpretação técnica

O valor do tipo de atributo original 16 é V_ASN1_SEQUENCE. O PoC o altera para V_ASN1_NULL. Na implementação afetada, o código subsequentemente trata o membro da união como value.sequence e o desreferencia. Como o membro ativo não é uma sequência, o UBSan detecta acesso a membro através de um ASN1_STRING * nulo.

Trata-se de uma confusão de tipo / verificação de condição excepcional ausente, e não de um estouro de buffer de heap ou pilha.

Arquivos

  • poc.c — reprodutor mínimo
  • scripts/prepare.sh — gera chave TSA, certificado, solicitação e resposta válida
  • scripts/build.sh — compila contra o build do OpenSSL com ASan/UBSan
  • scripts/run.sh — executa com configurações de sanitizer
  • openssl.cnf — configuração mínima de provider/solicitação
  • tsa.conf — configuração local do TSA RFC 3161
  • evidence/confirmed-output.txt — rastreamento de sanitizer confirmado e reduzido

Referências

  • NVD: CVE-2025-69420
  • Correção do OpenSSL: commit 4e254b48ad93cc092be3dd62d97015f33f73133a
Baixar ferramenta