CVE-2026-110672: Cpanel::JSON::XS versions before 4.80 for Perl leak the decoded key of an object rejected for a duplicate key or a missing colon in decode_hv

Published Oct 19, 2026
·
Updated

Cpanel::JSON::XS versions before 4.80 for Perl leak the decoded key of an object rejected for a duplicate key or a missing colon in decodehv. A quoted key of 24 or more bytes, or one containing a non-ASCII byte or an escape sequence, is decoded into a new scalar. Nothing frees that scalar when the object is rejected for a missing ':' after the key or, from 4.09, for a duplicate key. Duplicate keys are an error unless allowdupkeys, dupkeysasarrayref or relaxed is set. A process that keeps running after a failed decode retains one key per rejected document, with its size chosen by the sender. Repeated requests exhaust process memory.

Affected Software

12 affected componentsFixes available
cpan/Cpanel::JSON::XS<4.80
ubuntu/libcpanel-json-xs-perl*
ubuntu/libcpanel-json-xs-perl*
ubuntu/libcpanel-json-xs-perl*
ubuntu/libcpanel-json-xs-perl*
ubuntu/libcpanel-json-xs-perl*
ubuntu/libcpanel-json-xs-perl*
ubuntu/libcpanel-json-xs-perl*
debian/libcpanel-json-xs-perl<=4.35-1+deb12u1, <=4.39-2~deb13u1
4.80-1
debian/libcpanel-json-xs-perl*
debian/libcpanel-json-xs-perl*
debian/libcpanel-json-xs-perl<4.80-1
4.80-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/libcpanel-json-xs-perl to a version that resolves this vulnerability.

    Fixed in 4.80-1
  2. Upgrade

    Upgrade Cpanel-JSON-XS to a version that resolves this vulnerability.

    Fixed in 4.80

Event History

Oct 19, 2026
CVE Published
via Ubuntu·12:00 AM
Data Sourced
via Ubuntu·12:00 AM
RemedyDescriptionSeverityAffected Software
CVE Published
via MITRE·06:11 PM
Data Sourced
via MITRE·06:11 PM
RemedyDescriptionWeakness
Data Sourced
via OSV·06:11 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·07:17 PM
DescriptionSeverityWeakness
Oct 31, 2026
Data Sourced
via OSV·03:30 AM
Affected Software

Frequently Asked Questions

1

What conditions make an application vulnerable to memory exhaustion?

The application must use an affected Cpanel::JSON::XS version and continue running after failed JSON decodes. An attacker can repeatedly submit malformed objects with a duplicate key or a key missing its colon, causing retained key allocations to accumulate.

2

Which malformed JSON keys trigger the leaked allocation?

The rejected object must contain a quoted key that is at least 24 bytes long, contains a non-ASCII byte, or includes an escape sequence. The sender can choose the key size, increasing the memory retained per rejected document.

3

Does enabling duplicate-key support avoid the duplicate-key trigger?

Yes. Duplicate keys are not treated as errors when allow_dupkeys, dupkeys_as_arrayref, or relaxed is enabled, so the duplicate-key rejection path does not apply. The missing-colon rejection condition remains described independently.

4

What should teams do if they cannot update immediately?

Prevent untrusted clients from repeatedly sending malformed JSON to long-running processes, particularly objects with long, escaped, or non-ASCII quoted keys. Restarting affected processes releases retained memory, but does not remove the underlying exposure.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203