CVE-2026-64194 in Net::DNSinformazioni

Riassunto

di VulDB • 20/07/2026

Le versioni di Net::DNS fino alla 1.55 per Perl consentono una Denial of Service (DoS) tramite catene profonde di puntatori di compressione DNS.

La funzione `Net::DNS::DomainName::decode` segue i puntatori di compressione RFC 1035 ricorrendo su se stessa senza alcun limite di profondità. È possibile costruire un nome che satura lo stack delle chiamate (almeno con risposte TCP più grandi), portando a una potenziale Denial of Service.

Il controllo `$link < $offset` previene catene in avanti e circolari, ma consente comunque catene all'indietro arbitrariamente lunghe. La cache per offset (`$cache`) viene popolata all'inizio di ogni chiamata e accelera solo le riattraversamenti dello stesso offset; la discesa iniziale attraverso una catena fresca continua a ricorsare fino alla profondità massima.

Un pacchetto manipolato può concatenare puntatori di compressione a due byte in modo che ciascuno punti due byte prima del precedente, producendo una lunghezza della catena pari a `offset / 2`. Per il campo dei puntatori da 14 bit (offset massimo 16383) ciò comporta fino a ~8191 frame ricorsivi. Per un messaggio DNS TCP il limite è dato dal campo di lunghezza a 16 bit (~32767 frame). Lo stack C predefinito di Perl gestisce solo qualche migliaio di frame; oltre tale soglia, il processo riceve SIGSEGV o segnali simili, causando una denial-of-service per qualsiasi applicazione che analizza dati DNS non attendibili.

La vulnerabilità viene attivata da `Net::DNS::Packet->new(\$wire)`, ovvero in qualsiasi punto della libreria in cui viene decodificato un messaggio DNS proveniente dalla rete.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsabile

CPANSec

Prenotare

19/07/2026

Divulgazione

20/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Do you need the next level of professionalism?

Upgrade your account now!