Description
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.

to_ascii punycode encodes each label and only then applies the 63-byte DNS limit. encode_punycode in both backends follows the sample implementation in RFC 3492, whose outer loop runs once per distinct non-ASCII code point and scans the whole input each round, so a label of distinct non-ASCII characters costs the square of its length before the limit rejects it. Every ASCII conversion in the distribution, including domain_to_ascii and email_to_ascii, goes through to_ascii.
Published: 2026-09-22
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via CPU exhaustion
Action: Patch
AI Analysis

Impact

The vulnerability arises in Net::IDN::UTS46 implementations prior to version 2.590 for Perl, wherein the punycode encoder performs a quadratic number of operations for every distinct non‑ASCII character before applying the 63‑byte DNS label limit. A crafted domain label that contains many unique non‑ASCII characters can cause the to_ascii routine to consume overwhelming CPU time, leading to a denial of service. The weakness is identified as CWE‑407, which describes improper resource management.

Affected Systems

Any Perl deployment that uses Net::IDN::UTS46 or the Net-IDN-Encode distribution before the 2.590‑TRIAL release is susceptible. This includes scripts, web applications, or mail handlers that perform domain or email address normalization through domain_to_ascii or email_to_ascii.

Risk and Exploitability

The exploit requires an attacker to supply a domain name containing a long, non‑ASCII label that triggers the expensive punycode loop. Because the vulnerability is in a library, the attack vector is local to the application using the library; no network control is advertised for remote exploitation. The CVSS score of 7.5 indicates high severity, while the EPSS score of <1% suggests a low likelihood of exploitation; the vulnerability is not listed in CISA's KEV catalog, implying it is not yet a widely observed threat. Nevertheless, the potential for CPU exhaustion can impact availability for any affected service, so any deployment using the vulnerable library should consider remediation promptly.

Generated by OpenCVE AI on September 22, 2026 at 17:46 UTC.

Remediation

Vendor Solution

Upgrade to Net-IDN-Encode 2.590-TRIAL or later.


OpenCVE Recommended Actions

  • Upgrade Net-IDN-Encode to version 2.590‑TRIAL or later.
  • Validate input domain labels to reject any label exceeding 63 bytes before invoking to_ascii.
  • If an upgrade is not possible, replace the punycode encoder with a custom implementation that enforces the DNS length limit early and validates the number of distinct non‑ASCII characters to avoid quadratic complexity.

Generated by OpenCVE AI on September 22, 2026 at 17:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 22 Sep 2026 18:30:00 +0000

Type Values Removed Values Added
References
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 22 Sep 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Tue, 22 Sep 2026 07:30:00 +0000

Type Values Removed Values Added
Description 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. to_ascii punycode encodes each label and only then applies the 63-byte DNS limit. encode_punycode in both backends follows the sample implementation in RFC 3492, whose outer loop runs once per distinct non-ASCII code point and scans the whole input each round, so a label of distinct non-ASCII characters costs the square of its length before the limit rejects it. Every ASCII conversion in the distribution, including domain_to_ascii and email_to_ascii, goes through to_ascii.
Title 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
Weaknesses CWE-407
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-09-22T17:07:31.325Z

Reserved: 2026-09-08T19:22:20.005Z

Link: CVE-2026-87081

cve-icon Vulnrichment

Updated: 2026-09-22T17:07:31.325Z

cve-icon NVD

Status : Deferred

Published: 2026-09-22T08:16:40.863

Modified: 2026-09-22T19:07:00.983

Link: CVE-2026-87081

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-22T18:00:17Z

Weaknesses
  • CWE-407

    Inefficient Algorithmic Complexity