# CVE-2026-87079: Net::IDN::Punycode CPU exhaustion via quadratic insertion cost

Source: https://junglewise.ai/threats/cve-2026-87079-net-idn-punycode-versions-before-2-590-for-perl-allow-cpu  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-22. Updated: 2026-09-26  
License: CC BY 4.0 with a link back

CVE-2026-87079 · Severity: high · CVSS 7.5 · Published 2026-09-22

Net::IDN::Punycode is a Perl library that decodes internationalized domain names. An attacker can trigger unbounded CPU exhaustion by sending a very long domain label to the decoder, causing it to perform quadratic work. Since the library's Unicode conversion functions do not enforce the DNS 63-byte label limit, a remote attacker can cause denial of service without authentication.

Technologies: [CPAN Net::IDN::Punycode](https://junglewise.ai/threats/technologies/net-idn-punycode). Vendors: [CPAN](https://junglewise.ai/threats/vendors/cpan).

## Quick answers

**Is CVE-2026-87079 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-87079 being exploited in the wild.

**How severe is CVE-2026-87079?** High severity, with a CVSS score of 7.5, published 22 September 2026.

**Which products and versions are affected?** CPAN Net::IDN::Punycode before 2.590.

**Is there a fix for CVE-2026-87079?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-87079 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-87079?** Check whether you run CPAN Net::IDN::Punycode at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

The vulnerability exists in the decode_punycode function in both the XS and pure-Perl backends. The XS backend scans a UTF-8 output buffer from the start for each inserted code point, creating quadratic complexity. The pure-Perl backend has the same issue due to UTF-8 flag handling in substr operations. The domain_to_unicode and uts46_to_unicode functions pass attacker-supplied labels of any length directly to the decoder, bypassing the 63-byte DNS limit check that only applies during ASCII conversion.

## Affected products

- cpan Net::IDN::Punycode before 2.590

## Timeline

- 2026-09-22: disclosed: CVE-2026-87079 published

## References

- [https://cpan.org/modules](https://cpan.org/modules)
- [https://github.com/robrwo/Net-IDN-Encode/commit/00d723423b66810af26b88c552bedc61975b3078.patch](https://github.com/robrwo/Net-IDN-Encode/commit/00d723423b66810af26b88c552bedc61975b3078.patch)

## Related threats

- [Net::IDN::Punycode memory leak in decode_punycode](https://junglewise.ai/threats/cve-2026-87078-net-idn-punycode-versions-from-2-302-before-2-590-for-perl-leak)
- [Net::IDN::Punycode heap use-after-free in decode_punycode](https://junglewise.ai/threats/cve-2026-74766-net-idn-punycode-versions-from-2-301-before-2-590-for-perl-allow)
- [Net::IDN::Punycode integer overflow in delta accumulator](https://junglewise.ai/threats/cve-2026-74765-net-idn-punycode-versions-before-2-590-for-perl-allow-an-out-of)
- [Net::IDN::Punycode heap buffer overflow in encode_punycode](https://junglewise.ai/threats/cve-2016-15059-net-idn-punycode-versions-before-2-301-for-perl-allow-a-heap)
