---
id: CVE-2026-110672
title: >-
  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
summary: >-
  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.


  A quoted key of 24 or more bytes, or one containing a non-ASCII byte or an
  escape sequence, i…
severity: none
cwe:
  - CWE-401
product: Cpanel-JSON-XS
affected:
  - Cpanel-JSON-XS < 4.80
published: '2026-10-19'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T18:11:08.038Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-110672'
references:
  - url: >-
      https://github.com/rurban/Cpanel-JSON-XS/commit/532b53cf8d2ca5ab6bc24048325566d1f7132425.patch
  - url: 'https://metacpan.org/release/RURBAN/Cpanel-JSON-XS-4.80/changes'
tags:
  - cve.org
ingestedAt: '2026-10-19T18:35:50.147Z'
---

## Overview

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.

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 allow_dupkeys, dupkeys_as_arrayref 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

- `Cpanel-JSON-XS < 4.80`

## Remediation

Upgrade to Cpanel-JSON-XS 4.80 or later.
