
La funzione ASN1_STRING_set() accetta una lunghezza di tipo `int`, assicurarsi che l'argomento non venga inavvertitamente troncato quando viene chiamata da asn1_ex_c2i().
La patch risolve un problema di troncamento di interi nel codice di decodifica ASN.1/DER di OpenSSL.
Sono state apportate le seguenti modifiche:
Aggiornato il tipo della lunghezza del contenuto ASN.1
len di asn1_ex_c2i() è stato cambiato da int a long.Aggiunta la validazione del troncamento della lunghezza
ilen per contenere la rappresentazione int di len.long possa essere rappresentata in modo sicuro da un .intTOO_LONG invece di continuare con una lunghezza troncata errata.Aggiornata la gestione della conversione primitiva
prim_c2i() viene ora chiamata solo quando la lunghezza può essere rappresentata in modo sicuro come int.int.Aggiornata la conversione degli oggetti ASN.1
ossl_c2i_ASN1_OBJECT().Aggiornata la gestione delle stringhe ASN.1
ASN1_STRING_set0() e ASN1_STRING_set() sono stati modificati per utilizzare il valore ilen validato invece della len originale potenzialmente eccessiva.Queste modifiche impediscono che una lunghezza ASN.1 controllata da un attaccante, superiore all'intervallo int supportato, venga troncata silenziosamente e successivamente utilizzata per operazioni sui buffer. Ciò previene calcoli di lunghezza errati e mitiga la condizione di over-read del buffer heap associata a CVE-2026-34180.