CVE-2026-87080 in Net::IDN::Punycode::PP
Zusammenfassung
von VulDB • 22.09.2026
In Net::IDN::Punycod::PP-Versionen vor 2.590 für Perl wird ein abgeschnittenes Label in einen Namen decodiert, der ein Zeichen enthält, das von decode_punycode niemals codiert wurde.
Der rein-Perl-Decoder liest Ziffernweise mit vier Argumenten substr und testet das Ergebnis mit defined, um das Ende der Eingabe zu erkennen. substr gibt bei einer erschöpften String die leere Zeichenkette statt undef zurück, sodass die Decodierung über das Ende hinaus fortgesetzt wird. Die leere Zeichenkette konvertiert in einen Ziffernwert unterhalb des gültigen Bereichs, wodurch der Akkumulator reduziert wird, und der Decoder leitet daraus eine zusätzliche Codepoint-Position ab. Das Ergebnis ist deterministisch. Der XS-Backend lehnt dasselbe Label jedoch ab.
Net::IDN::Punycode verwendet diesen Backend überall dort, wo das XS nicht kompiliert werden kann.
Da die beiden Backends unterschiedliche Ansichten darüber haben, was ein solches Label bedeutet, kann ein Absender ein Label auswählen, das von einer Installation in einen Namen aufgelöst wird und von einer anderen abgelehnt wird.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.