CVE-2026-87078: CWE-401 Missing Release of Memory after Effective Lifetime
Net::IDN::Punycode versions from 2.302 before 2.590 for Perl leak the output buffer on every rejected label in decode_punycode. The XS backend allocates the scalar it returns before it validates the input, sizing the buffer at twice the input length. The scalar is released only on the success path, so each of the three croaks that reject a label leaves the scalar and its buffer allocated. Nothing bounds the label length in the to-Unicode direction, since the 63-byte DNS limit is checked only when converting to ASCII. Only the XS backend is affected. A sender who supplies invalid labels grows the process by twice the label length per rejected call, with no successful call needed.
AI Analysis
Technical Summary
CVE-2026-87078 is a memory leak vulnerability (CWE-401) in the Net::IDN::Punycode Perl module versions >=2.302 and <2.590. The XS backend allocates an output buffer scalar sized at twice the input length before validating the input. If the input label is invalid, the scalar is not released because the release occurs only on the success path. This results in memory leaking on every rejected label during decode_punycode calls. The label length is unbounded in the to-Unicode direction, allowing a sender to increase process memory usage by supplying invalid labels, leaking memory proportional to twice the label length per rejected call.
Potential Impact
The vulnerability causes a memory leak in the affected versions of Net::IDN::Punycode when processing invalid labels. An attacker can cause the process to consume increasing amounts of memory by repeatedly sending invalid labels, potentially leading to resource exhaustion or denial of service. No successful decode calls are required to trigger the leak. The impact is limited to the XS backend of the module.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, avoid processing untrusted input with the affected versions of Net::IDN::Punycode or use alternative safe libraries. Monitor memory usage of processes using this module to detect abnormal growth.
CVE-2026-87078: CWE-401 Missing Release of Memory after Effective Lifetime
Description
Net::IDN::Punycode versions from 2.302 before 2.590 for Perl leak the output buffer on every rejected label in decode_punycode. The XS backend allocates the scalar it returns before it validates the input, sizing the buffer at twice the input length. The scalar is released only on the success path, so each of the three croaks that reject a label leaves the scalar and its buffer allocated. Nothing bounds the label length in the to-Unicode direction, since the 63-byte DNS limit is checked only when converting to ASCII. Only the XS backend is affected. A sender who supplies invalid labels grows the process by twice the label length per rejected call, with no successful call needed.
CVSS v3.1
Score 9.1critical
Affected software
pkg:github/Net-IDN-EncodeRun 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-87078 is a memory leak vulnerability (CWE-401) in the Net::IDN::Punycode Perl module versions >=2.302 and <2.590. The XS backend allocates an output buffer scalar sized at twice the input length before validating the input. If the input label is invalid, the scalar is not released because the release occurs only on the success path. This results in memory leaking on every rejected label during decode_punycode calls. The label length is unbounded in the to-Unicode direction, allowing a sender to increase process memory usage by supplying invalid labels, leaking memory proportional to twice the label length per rejected call.
Potential Impact
The vulnerability causes a memory leak in the affected versions of Net::IDN::Punycode when processing invalid labels. An attacker can cause the process to consume increasing amounts of memory by repeatedly sending invalid labels, potentially leading to resource exhaustion or denial of service. No successful decode calls are required to trigger the leak. The impact is limited to the XS backend of the module.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, avoid processing untrusted input with the affected versions of Net::IDN::Punycode or use alternative safe libraries. Monitor memory usage of processes using this module to detect abnormal growth.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- CPANSec
- Date Reserved
- 2026-09-08T19:22:20.005Z
- State
- PUBLISHED
Threat ID: 6ab22f39f7a7c54106d716ac
Added to database: 09/22/2026, 07:33:13 UTC
Last enriched: 09/22/2026, 07:47:57 UTC
Last updated: 09/22/2026, 15:49:37 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.