
CVE catalog
CVE-2026-87079
Net::IDN::Punycode versions before 2.590 for Perl allow CPU exhaustion via quadratic insertion cost when decoding a long label in decode_punycode. The XS backend inserts each decoded code point into
- Severity
- High · CVSS 7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Published
- Updated
- Source
- [NVD] · [CVE record]
- EPSS
- 0.38% · Oct 25, 2026
Net::IDN::Punycode versions before 2.590 for Perl allow CPU exhaustion via quadratic insertion cost when decoding a long label in decode_punycode. The XS backend inserts each decoded code point into a UTF-8 buffer and finds the insertion point by scanning that buffer from the start, one character at a time. The scan runs once per code point over the output built so far, so the cost is quadratic in the label length. The pure-Perl backend downgrades its input to bytes so that substr can index it directly, but takes its working copy before the downgrade, so when the input carries the UTF-8 flag every substr on the copy scans from the start, with the same quadratic cost. Nothing bounds the label length in the to-Unicode direction. The 63-byte DNS limit is checked only when converting to ASCII, so domain_to_unicode and uts46_to_unicode pass an attacker-supplied label of any length to the decoder.
Vulnerable and fixed packages
Distribution-reported package versions and fixes. These do not depend on matching against the OpenFactory package catalog.
| Distribution | Package | Release | Version | Status |
|---|---|---|---|---|
| Debian | libnet-idn-encode-perl | sid | 2.502-1 | vulnerable |
| Debian | libnet-idn-encode-perl | forky | 2.502-1 | vulnerable |
| Debian | libnet-idn-encode-perl | trixie | 2.500-5 | vulnerable |
| Debian | libnet-idn-encode-perl | bookworm | 2.500-3 | vulnerable |
Fixed-version evidence
| Distribution | Package | Type | Release | Fixed version | Urgency | Origin | Bugs |
|---|---|---|---|---|---|---|---|
| Debian | libnet-idn-encode-perl | source | sid | (unfixed) | not yet assigned | Not reported | [1148729] |
| Debian | libnet-idn-encode-perl | source | forky | (unfixed) | not yet assigned | Not reported | [1148729] |
| Debian | libnet-idn-encode-perl | source | trixie | (unfixed) | not yet assigned | Not reported | [1148729] |
| Debian | libnet-idn-encode-perl | source | bookworm | (unfixed) | not yet assigned | Not reported | [1148729] |
OpenFactory catalog packages
[Debian 12 (Bookworm)]
- [libnet-idn-encode-perl]Affected
Source package: [libnet-idn-encode-perl]
Details (2)
2.500-3+b1· amd64 · bookwormAffected
nvd · libnet-idn-encode-perl · debian · bookworm; nvd · libnet-idn-encode-perl · debian · 12
2.500-3+b1· arm64 · bookwormAffected
nvd · libnet-idn-encode-perl · debian · bookworm; nvd · libnet-idn-encode-perl · debian · 12
[Debian 13 (Trixie)]
- [libnet-idn-encode-perl]Affected
Source package: [libnet-idn-encode-perl]
Details (2)
2.500-5+b1· amd64 · trixieAffected
nvd · libnet-idn-encode-perl · debian · 13
2.500-5+b1· arm64 · trixieAffected
nvd · libnet-idn-encode-perl · debian · 13
Observed: