Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
PoC-CVE-2025-69420 — PoC solo crash per CVE-2025-69420 che dimostra una vulnerabilità di type confusion nella verifica della risposta TimeStamp di OpenSSL tramite attributi di certificato ESS di firma malformati. | Kitploit
Strumenti/GitHubGitHub/kha-beleh/poc-cve-2025-69420
Analisi delle VulnerabilitàExploitFuzzingCrittografiaApprendimento e FormazioneBinary Exploitation
GitHubkha-beleh/poc-cve-2025-69420

PoC-CVE-2025-69420

PoC solo crash per CVE-2025-69420 che dimostra una vulnerabilità di type confusion nella verifica della risposta TimeStamp di OpenSSL tramite attributi di certificato ESS di firma malformati.

Vedi Repository
21 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-69420 — PoC di confusione di tipo della TimeStamp Response di OpenSSL

Riproduttore di laboratorio che causa esclusivamente un crash per CVE-2025-69420 in OpenSSL. Il PoC carica una TimeStamp Response RFC 3161 valida, modifica in memoria l'attributo ESS firmato da V_ASN1_SEQUENCE a V_ASN1_NULL e chiama TS_RESP_verify_response().

Su una build interessata, ossl_ess_get_signing_cert_v2() o ossl_ess_get_signing_cert() accede all'union ASN1_TYPE come se fosse una sequenza senza convalidare il tipo attivo. UBSan segnala un accesso a un membro tramite un puntatore ASN1_STRING nullo. L'impatto previsto è la terminazione del processo / denial of service; questo repository non contiene logica di esecuzione di codice.

Risultato confermato

L'output di test fornito conferma il problema:

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

Ciò corrisponde alla descrizione della vulnerabilità: una TimeStamp Response malformata raggiunge TS_RESP_verify_response() e un attributo ESS del certificato di firma con tipo diverso da V_ASN1_SEQUENCE causa un dereferenziamento di puntatore non valido o NULL.

Ambito

Eseguire il test solo in un ambiente isolato contro una build di OpenSSL di cui si è proprietari o che si è autorizzati a valutare. Questo è un riproduttore che causa esclusivamente un crash.

Requisiti

  • Linux e GCC
  • Build di OpenSSL interessata compilata con ASan e UBSan
  • Header di sviluppo di OpenSSL nell'albero di build

Percorso di build predefinito:

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

Sostituirlo quando necessario:

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

Utilizzo

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

Oppure eseguire tutto separatamente:

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

prepare.sh utilizza il openssl.cnf minimale del repository, quindi non dipende da un $OPENSSL_BUILD/ssl/openssl.cnf mancante.

Output atteso su una build interessata

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

Gli indirizzi e i numeri di riga esatti variano in base alla build. Con UBSAN_OPTIONS=halt_on_error=1, il processo termina alla prima operazione indefinita rilevata.

Risultato atteso su una build corretta

L'attributo malformato dovrebbe essere rifiutato in modo pulito senza segnalazioni del sanitizer o crash del processo. Il PoC quindi stampa:

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

Interpretazione tecnica

Il valore originale del tipo di attributo 16 è V_ASN1_SEQUENCE. Il PoC lo modifica in V_ASN1_NULL. Nell'implementazione interessata, il codice tratta successivamente il membro dell'union come value.sequence e lo dereferenzia. Poiché il membro attivo non è una sequenza, UBSan rileva un accesso a un membro tramite un ASN1_STRING * nullo.

Questo è un caso di confusione di tipo / mancato controllo delle condizioni eccezionali, piuttosto che un overflow del buffer di heap o di stack.

File

  • poc.c — riproduttore minimale
  • scripts/prepare.sh — genera la chiave TSA, il certificato, la richiesta e una risposta valida
  • scripts/build.sh — compila contro la build OpenSSL ASan/UBSan
  • scripts/run.sh — esegue con le impostazioni dei sanitizer
  • openssl.cnf — configurazione minima per provider/richiesta
  • tsa.conf — configurazione locale TSA RFC 3161
  • evidence/confirmed-output.txt — traccia del sanitizer confermata e abbreviata

Riferimenti

  • NVD: CVE-2025-69420
  • Fix OpenSSL: commit 4e254b48ad93cc092be3dd62d97015f33f73133a
Scarica lo strumento