CVE-2026-74765: CWE-190 Integer Overflow or Wraparound
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. The XS backend keeps the punycode delta, and the digit index derived from it, in a signed int. The accumulation `delta += (m-n) * (h+1)` has no overflow check, so a large enough code point wraps the delta and the digit index leaves the range of the 36-entry digit table. The bound before the final table access tests only for an index above 36, so a negative index passes it, as does 36 itself. Perl strings hold code points beyond the Unicode range, and one such code point overflows the accumulation on its own. Valid input wraps it as well, for example 1927 ASCII letters followed by U+10FFFF. The conversion functions encode a label before they check its length, so a long label reaches the encoder through the documented API. Only the XS backend is affected. Encoding an attacker-supplied string copies a byte from outside the digit table into the encoded result or crashes the process.
AI Analysis
Technical Summary
The Net::IDN::Punycode Perl module versions prior to 2.590 have an integer overflow vulnerability in the XS backend's encode_punycode function. The vulnerability occurs because the delta accumulator and digit index are stored in a signed int without overflow checks. When encoding certain inputs, such as a long label with a high Unicode code point (e.g., U+10FFFF), the delta value can overflow and wrap around, causing the digit index to go out of the valid range of the 36-entry digit table. The bounds check only tests for indices above 36, allowing negative indices or 36 itself to pass, resulting in an out-of-bounds read. This can lead to copying bytes from outside the digit table into the encoded result or crashing the process. The vulnerability is limited to the XS backend implementation.
Potential Impact
An attacker can supply specially crafted strings that trigger the integer overflow and out-of-bounds read in the encode_punycode function. This may cause the process to crash or potentially lead to memory corruption by reading bytes outside the intended digit table. There is no indication of known exploits in the wild. The vulnerability affects only the XS backend of the module.
Mitigation Recommendations
A fixed version 2.590 or later should be used to remediate this vulnerability. Since no patch links are provided, users should check the official Net::IDN::Punycode module repository or CPAN for updates. Until patched, avoid processing untrusted input with the XS backend or disable it if possible.
CVE-2026-74765: CWE-190 Integer Overflow or Wraparound
Description
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. The XS backend keeps the punycode delta, and the digit index derived from it, in a signed int. The accumulation `delta += (m-n) * (h+1)` has no overflow check, so a large enough code point wraps the delta and the digit index leaves the range of the 36-entry digit table. The bound before the final table access tests only for an index above 36, so a negative index passes it, as does 36 itself. Perl strings hold code points beyond the Unicode range, and one such code point overflows the accumulation on its own. Valid input wraps it as well, for example 1927 ASCII letters followed by U+10FFFF. The conversion functions encode a label before they check its length, so a long label reaches the encoder through the documented API. Only the XS backend is affected. Encoding an attacker-supplied string copies a byte from outside the digit table into the encoded result or crashes the process.
CVSS v3.1
Score 6.5medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Net::IDN::Punycode Perl module versions prior to 2.590 have an integer overflow vulnerability in the XS backend's encode_punycode function. The vulnerability occurs because the delta accumulator and digit index are stored in a signed int without overflow checks. When encoding certain inputs, such as a long label with a high Unicode code point (e.g., U+10FFFF), the delta value can overflow and wrap around, causing the digit index to go out of the valid range of the 36-entry digit table. The bounds check only tests for indices above 36, allowing negative indices or 36 itself to pass, resulting in an out-of-bounds read. This can lead to copying bytes from outside the digit table into the encoded result or crashing the process. The vulnerability is limited to the XS backend implementation.
Potential Impact
An attacker can supply specially crafted strings that trigger the integer overflow and out-of-bounds read in the encode_punycode function. This may cause the process to crash or potentially lead to memory corruption by reading bytes outside the intended digit table. There is no indication of known exploits in the wild. The vulnerability affects only the XS backend of the module.
Mitigation Recommendations
A fixed version 2.590 or later should be used to remediate this vulnerability. Since no patch links are provided, users should check the official Net::IDN::Punycode module repository or CPAN for updates. Until patched, avoid processing untrusted input with the XS backend or disable it if possible.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- CPANSec
- Date Reserved
- 2026-08-15T21:52:57.406Z
- State
- PUBLISHED
Threat ID: 6ab22f39f7a7c54106d716aa
Added to database: 09/22/2026, 07:33:13 UTC
Last enriched: 09/22/2026, 07:48:08 UTC
Last updated: 09/22/2026, 14:46:12 UTC
Views: 10
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.