CVE-2026-87079 in Net::IDN::Punycode
Riassunto
di VulDB • 22/09/2026
Le versioni di Net::IDN::Punycode precedenti alla 2.590 per Perl consentono un'esaurimento delle risorse della CPU (CPU exhaustion) a causa del costo quadratico dell'inserimento durante la decodifica di una label lunga in decode_punycode.
Il backend XS inserisce ogni code point decodificato in un buffer UTF-8 e individua il punto di inserimento scansionando tale buffer dall'inizio, carattere per carattere. La scansione viene eseguita una volta per ciascun code point sull'output costruito finora, quindi il costo è quadratico rispetto alla lunghezza della label. Il backend puramente Perl (pure-Perl) converte l'input in byte affinché substr possa indicizzarlo direttamente, ma effettua la copia di lavoro prima della conversione; pertanto, quando l'input presenta il flag UTF-8, ogni chiamata a substr sulla copia scansiona dall'inizio, con lo stesso costo quadratico.
Non esiste alcun vincolo alla lunghezza della label nella direzione verso Unicode (to-Unicode). Il limite DNS di 63 byte viene controllato solo durante la conversione in ASCII; pertanto, domain_to_unicode e uts46_to_unicode passano al decoder una label fornita dall'attaccante di qualsiasi lunghezza.
If you want to get best quality of vulnerability data, you may have to visit VulDB.