Skip to content
NewA calmer, faster ZeroHour
StoryVulnerabilitymedium

Eight CVEs in Perl Net-IDN-Encode: memory corruption, leaks, CPU exhaustion and punycode decoding flaws in Net::IDN::Punycode, Punycode::PP and UTS46, all fixed in 2.590

1 source · 8 articlesFirst reported Updated ()1
What's new

No material change relative to the previous summary: the same eight oss-security disclosures by Paul Johnson on 2026-09-22 are consolidated, with affected-version ranges, fix versions and the absence of reported exploitation all confirmed; remediation guidance remains upgrade to Net-IDN-Encode 2.590 or later.

Merged summary · glm-5.3 · rewritten as coverage arrivesSummaries by Vani AI

Paul Johnson disclosed eight vulnerabilities on oss-security on 2026-09-22 in the Net-IDN-Encode Perl distribution — a heap buffer overflow (fixed in 2.301) plus seven further flaws including an out-of-bounds read, heap use-after-free, memory leak, two…

Between 15:41:09 and 15:56:55 UTC on 2026-09-22, Paul Johnson posted eight security disclosures to oss-security for modules in the Net-IDN-Encode Perl distribution. Four affect the encoding path: CVE-2016-15059, a heap buffer overflow via unchecked writes past the output buffer in encode_punycode, affecting Net::IDN::Punycode versions before 2.301 and fixed in 2.301; CVE-2026-74765, an out-of-bounds read via integer overflow of the delta accumulator in encode_punycode, affecting versions before 2.590; CVE-2026-87082, where encode_punycode does not validate malformed UTF-8 and can hang, crash, or return an incorrect label, affecting versions before 2.590; and CVE-2026-87081, CPU exhaustion in Net::IDN::UTS46 versions before 2.590 because to_ascii performs quadratic punycode encoding of an overlong label before applying its length check. Four affect decoding: CVE-2026-74766, a heap use-after-free in decode_punycode triggered when a decoded code point reallocates the output buffer, affecting versions from 2.301 before 2.590; CVE-2026-87078, a leak of the output buffer on every rejected label in decode_punycode that can accumulate memory under repeated invalid input, affecting versions from 2.302 before 2.590; CVE-2026-87079, CPU exhaustion via quadratic insertion cost when decoding a long label in decode_punycode, affecting versions before 2.590; and CVE-2026-87080, in which the pure-Perl Net::IDN::Punycode::PP versions before 2.590 decode a truncated label to a name containing a character it never encoded, which could enable IDN homograph-style spoofing in software relying on the module. Seven of the eight flaws are fixed in Net-IDN-Encode 2.590, which also supersedes the earlier 2.301 fix for CVE-2016-15059, so upgrading to 2.590 or later remediates all eight vulnerabilities. The differing affected-version ranges across the disclosures reflect the specific code changes each flaw depends on rather than any disagreement between sources. None of the eight disclosures mention exploitation in the wild.

Key facts
  • Eight CVEs disclosed on oss-security on 2026-09-22 between 15:41:09 and 15:56:55 UTC, all by Paul Johnson, all in the Net-IDN-Encode Perl distribution.
  • CVE-2016-15059: heap buffer overflow via unchecked writes past the output buffer in encode_punycode; affects Net::IDN::Punycode before 2.301; fixed in 2.301.
  • CVE-2026-74765: out-of-bounds read via integer overflow of the delta accumulator in encode_punycode; affects versions before 2.590; fixed in 2.590.
  • CVE-2026-87082: encode_punycode does not validate malformed UTF-8; can hang, crash, or return an incorrect label; affects versions before 2.590; fixed in 2.590.
  • CVE-2026-87081: CPU exhaustion in Net::IDN::UTS46 before 2.590 via quadratic punycode encoding of an overlong label before the length check in to_ascii; fixed in 2.590.
  • CVE-2026-74766: heap use-after-free in decode_punycode when a decoded code point reallocates the output buffer; affects versions from 2.301 before 2.590; fixed in 2.590.
  • CVE-2026-87078: output-buffer leak on every rejected label in decode_punycode, growing under repeated invalid input; affects versions from 2.302 before 2.590; fixed in 2.590.
  • CVE-2026-87079: CPU exhaustion via quadratic insertion cost when decoding a long label in decode_punycode; affects versions before 2.590; fixed in 2.590.
Analyze this story with Vani AIImpact, who is affected and what defenders should do, in a new chat

Coverage

oldest first · one row per article · UTC
  1. · Sep 22, 2026 oss-securityFirst report

    CVE-2016-15059: Net::IDN::Punycode versions before 2.301 for Perl allow a heap buffer overflow via unchecked writes past the output buffer in encode_punycode

    Perl Net::IDN::Punycode before 2.301 has a heap buffer overflow in encode_punycode, tracked as CVE-2016-15059.

  2. · Sep 22, 2026 oss-security

    CVE-2026-74765: Net::IDN::Punycode versions before 2.590 for Perl allow an out-of-bounds read via integer overflow of the delta accumulator in encode_punycode

    Perl Net::IDN::Punycode before 2.590 allows an out-of-bounds read via delta overflow in encode_punycode.

  3. · Sep 22, 2026 oss-security

    CVE-2026-74766: Net::IDN::Punycode versions from 2.301 before 2.590 for Perl allow a heap use-after-free via a decoded code point that reallocates the output buffer in decode_punycode

    Perl Net::IDN::Punycode before 2.590 has a heap use-after-free when decode_punycode reallocates its buffer.

  4. · Sep 22, 2026 oss-security

    CVE-2026-87078: Net::IDN::Punycode versions from 2.302 before 2.590 for Perl leak the output buffer on every rejected label in decode_punycode

    Perl Net::IDN::Punycode 2.302 before 2.590 leaks the output buffer on every rejected label.

  5. · Sep 22, 2026 oss-security

    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

    Perl Net::IDN::Punycode before 2.590 can exhaust CPU decoding a long Punycode label.

  6. · Sep 22, 2026 oss-security

    CVE-2026-87080: Net::IDN::Punycode::PP versions before 2.590 for Perl decode a truncated label to a name containing a character it never encoded in decode_punycode

    Net::IDN::Punycode::PP Perl module before 2.590 decodes truncated punycode labels into names containing characters that were never encoded.

  7. · Sep 22, 2026 oss-security

    CVE-2026-87081: Net::IDN::UTS46 versions before 2.590 for Perl allow CPU exhaustion via quadratic punycode encoding of an overlong label before the length check in to_ascii

    Perl Net::IDN::UTS46 before 2.590 can exhaust CPU on overlong labels.

  8. · Sep 22, 2026 oss-security

    CVE-2026-87082: Net::IDN::Punycode versions before 2.590 for Perl hang, crash or return a wrong label via unvalidated malformed UTF-8 in encode_punycode

    Perl Net::IDN::Punycode before 2.590 can hang, crash, or mislabel malformed UTF-8.

Vulnerabilities in this story

All
CVEVulnerabilityCVSSEPSSSignalsPublished
CVE-2016-15059
+1 related CVE
Heap Buffer Overflow in Perl Net::IDN::Punycode XS Backend
9.8
group max
—
CVE-2026-74766
+1 related CVE
Unauthenticated RCE in Dell Secure Connect Gateway 5.0 (high CVSS:3.1) (CVE-2026-74766) (Punycode 2.301 before 2.590)…
8.4
group max
—
CVE-2026-87078
Net::IDN::Punycode versions from 2.302 before 2.590 for Perl leak the output buffer on every rejected label in decode_punycode
9.1—
CVE-2026-87080
+1 related CVE
IDN Label Mismatch Vulnerability in Perl Punycode Decoder
9.1
group max
—
CVE-2026-87082
DoS and Data Corruption in Perl Net::IDN::Punycode via Malformed UTF-8
7.5—