CVE-2026-87079

Source
https://cve.org/CVERecord?id=CVE-2026-87079
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-87079.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-87079
Downstream
Published
2026-09-22T07:24:47Z
Modified
2026-09-23T03:47:27Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
Net::IDN::Punycode versions before 2.590 for Perl allow CPU exhaustion via quadratic insertion cost when decoding a long label in decode_punycode
Details

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.

Database specific
{
    "cna_assigner":  "CPANSec",
    "cwe_ids":  [
        "CWE-407"
    ],
    "osv_generated_from":  "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/87xxx/CVE-2026-87079.json"
}
References

Affected packages

Git / github.com/robrwo/net-idn-encode

Affected ranges

Type
GIT
Repo
https://github.com/robrwo/net-idn-encode
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Database specific
Show details
{
    "extracted_events":  [
        {
            "introduced":  "0"
        },
        {
            "fixed":  "2.590"
        }
    ],
    "source":  "AFFECTED_FIELD"
}

Affected versions

Net-IDN-Encode-0.*
Net-IDN-Encode-0.999_20100110
Net-IDN-Encode-0.99_20080914
Net-IDN-Encode-0.99_20080919
Net-IDN-Encode-0.99_20091216
Net-IDN-Encode-0.99_20091231
Net-IDN-Encode-1.*
Net-IDN-Encode-1.000
Net-IDN-Encode-1.999_20120107
Net-IDN-Encode-1.999_20120108
Net-IDN-Encode-2.*
Net-IDN-Encode-2.000
Net-IDN-Encode-2.000_20120110
Net-IDN-Encode-2.001
Net-IDN-Encode-2.002
Net-IDN-Encode-2.003
Net-IDN-Encode-2.003_2013122700
Net-IDN-Encode-2.003_2013122701
Net-IDN-Encode-2.003_2013880700
Net-IDN-Encode-2.003_2013881000
Net-IDN-Encode-2.005
Net-IDN-Encode-2.099_20131225
Net-IDN-Encode-2.099_20131226
Net-IDN-tools-0.*
Net-IDN-tools-0.99_20070912
v2.*
v2.501
v2.502

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-87079.json"