CVE-2026-87081: CWE-407 Inefficient Algorithmic Complexity
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.
AI Analysis
Technical Summary
CVE-2026-87081 is an inefficient algorithmic complexity vulnerability (CWE-407) in Net::IDN::UTS46 for Perl versions before 2.590. The vulnerability arises because the to_ascii function punycode encodes each label fully before enforcing the 63-byte DNS label length limit. The encode_punycode function, based on RFC 3492 sample code, has an outer loop that runs once per distinct non-ASCII character and scans the entire input each iteration, causing quadratic CPU time relative to the label length. This can be exploited to cause CPU exhaustion by providing an overlong label with many distinct non-ASCII characters. The vulnerability affects all ASCII conversion functions that rely on to_ascii, such as domain_to_ascii and email_to_ascii.
Potential Impact
An attacker can cause CPU exhaustion on systems using vulnerable versions of Net::IDN::UTS46 by submitting specially crafted inputs with overlong labels containing many distinct non-ASCII characters. This leads to excessive CPU consumption due to quadratic time complexity in punycode encoding before length validation. There is no indication of remote code execution or data compromise, only denial of service via resource exhaustion.
Mitigation Recommendations
A fix is available in Net::IDN::UTS46 version 2.590 and later. Users should upgrade to version 2.590 or newer to remediate this vulnerability. No other mitigation is indicated or required.
CVE-2026-87081: CWE-407 Inefficient Algorithmic Complexity
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.
CVSS v3.1
Score 7.5high
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
CVE-2026-87081 is an inefficient algorithmic complexity vulnerability (CWE-407) in Net::IDN::UTS46 for Perl versions before 2.590. The vulnerability arises because the to_ascii function punycode encodes each label fully before enforcing the 63-byte DNS label length limit. The encode_punycode function, based on RFC 3492 sample code, has an outer loop that runs once per distinct non-ASCII character and scans the entire input each iteration, causing quadratic CPU time relative to the label length. This can be exploited to cause CPU exhaustion by providing an overlong label with many distinct non-ASCII characters. The vulnerability affects all ASCII conversion functions that rely on to_ascii, such as domain_to_ascii and email_to_ascii.
Potential Impact
An attacker can cause CPU exhaustion on systems using vulnerable versions of Net::IDN::UTS46 by submitting specially crafted inputs with overlong labels containing many distinct non-ASCII characters. This leads to excessive CPU consumption due to quadratic time complexity in punycode encoding before length validation. There is no indication of remote code execution or data compromise, only denial of service via resource exhaustion.
Mitigation Recommendations
A fix is available in Net::IDN::UTS46 version 2.590 and later. Users should upgrade to version 2.590 or newer to remediate this vulnerability. No other mitigation is indicated or required.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- CPANSec
- Date Reserved
- 2026-09-08T19:22:20.005Z
- State
- PUBLISHED
Threat ID: 6ab22f39f7a7c54106d716af
Added to database: 09/22/2026, 07:33:13 UTC
Last enriched: 09/22/2026, 07:47:44 UTC
Last updated: 09/22/2026, 17:33:22 UTC
Views: 13
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.