CVE-2026-74765
Received Received - Intake

Integer Overflow in Net::IDN::Punycode Perl Module

Vulnerability report for CVE-2026-74765, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-22

Last updated on: 2026-09-22

Assigner: CPANSec

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 Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-22
Last Modified
2026-09-22
Generated
2026-09-22
AI Q&A
2026-09-22
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Currently, no data is known.

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-125 The product reads data past the end, or before the beginning, of the intended buffer.
CWE-190 The product performs a calculation that can produce an integer overflow or wraparound when the logic assumes that the resulting value will always be larger than the original value. This occurs when an integer value is incremented to a value that is too large to store in the associated representation. When this occurs, the value may become a very small or negative number.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is an out-of-bounds read in Net::IDN::Punycode versions before 2.590 for Perl. It occurs due to an integer overflow in the delta accumulator during punycode encoding. The XS backend uses signed integers for the delta and digit index, which can wrap around and produce negative values or exceed the 36-entry digit table bounds. This allows attacker-supplied strings to copy memory outside the intended buffer or crash the process.

Detection Guidance

To detect this vulnerability, check if your system uses Net::IDN::Punycode versions before 2.590. Run: perl -MNet::IDN::Punycode -e 'print $Net::IDN::Punycode::VERSION' to verify the installed version. If the version is below 2.590, the system is vulnerable.

Impact Analysis

If you use Perl's Net::IDN::Punycode module before version 2.590, an attacker could exploit this to read sensitive memory or crash your application by providing specially crafted input. This could lead to data leaks, denial of service, or potentially further exploitation depending on the application context.

Compliance Impact

This vulnerability could impact compliance by enabling memory corruption or data leaks, which may violate confidentiality requirements in GDPR or HIPAA. Organizations processing sensitive data must ensure their systems are patched to prevent unauthorized access or disclosure of personal health or user information.

Mitigation Strategies

Immediately update Net::IDN::Punycode to version 2.590 or later. If using Perl modules, run: cpan upgrade Net::IDN::Punycode. Alternatively, apply the patches from the provided GitHub commits to fix the integer overflow and bounds checking issues.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-74765. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart