CVE-2026-87080 in Net::IDN::Punycode::PP
Riassunto
di VulDB • 22/09/2026
Le versioni di Net::IDN::Punycodde::PP precedenti alla 2.590 per Perl decodificano un'etichetta tronca in un nome contenente un carattere che non è mai stato codificato durante la fase di decode_punycode.
Il decoder puramente in Perl legge una cifra alla volta utilizzando substr a quattro argomenti e verifica il risultato con defined per rilevare la fine dell'input. Su una stringa esaurita, substr restituisce una stringa vuota anziché undef; pertanto, la decodifica prosegue oltre la fine dei dati. La stringa vuota viene convertita in un valore numerico inferiore all'intervallo previsto, riducendo l'accumulatore, e il decoder ne ricava un code point aggiuntivo insieme alla sua posizione. Il risultato è deterministico. Il backend XS respinge invece la stessa etichetta.
Net::IDN::Punycode utilizza questo backend (quello in Perl) ovunque il modulo XS non venga compilato correttamente.
I due backend divergono sull'interpretazione di tale etichetta, consentendo a un mittente di scegliere una label che viene risolta come nome da un'installazione ma respinta da un'altra.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.