Net::IDN::Punycode::PP versions before 2.590 for Perl decode a truncated label to a name…
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA.
Summary
Net::IDN::Punycode::PP versions before 2.590 for Perl decode a truncated label to a name containing a character it never encoded in decode_punycode. The pure-Perl decoder reads one digit at a time with four-argument substr and tests the result with defined to detect the end of the input. substr on an exhausted string returns the empty string rather than undef, so decoding continues past the end. The empty string converts to a digit value below the range, reducing the accumulator, and the decoder derives one extra code point and its position from it. The result is deterministic. The XS backend rejects the same label. Net::IDN::Punycode uses this backend wherever the XS does not build. The two backends disagree about what such a label means, so a sender can pick a label that one installation resolves to a name and another rejects.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | Net-IDN-Encode | before 2.590 | 2.590 | Patch available | CNA |
- Net-IDN-Encode Vendor— Affected before 2.590 Fixed in 2.590 Patch available CNA
Remediation
- Fix · CNA Net-IDN-Encode Fixed in 2.590
Timeline
- 2026-10-02 Threatist record created from CVE-2026-87080
- 2026-10-03 Alias added: GHSA-m8c4-89qh-3j3f
References
Sources
- CVE-2026-87080 · CVE Program
- CVE-2026-87080 · NVD
- FIRST EPSS
- GHSA-m8c4-89qh-3j3f · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences