Description
Cpanel::JSON::XS versions from 4.33 before 4.80 for Perl miss duplicate non-ASCII bare keys, allowing type confusion under dupkeys_as_arrayref in decode_hv.

With allow_barekey, which relaxed enables, a bare key containing a non-ASCII byte is stored as UTF-8 but looked up as raw bytes, so a repeated key escapes the duplicate-key check and replaces the earlier value.

From 4.41, under dupkeys_as_arrayref, a bare repeat replaces the array that collects a key's values with a plain value, and the next quoted repeat pushes onto that value as if it were an array. A JSON integer there is dereferenced as a pointer.

Untrusted JSON decoded with relaxed and dupkeys_as_arrayref can crash the process or dereference an address chosen by a JSON number.
Published: 2026-10-19
Score: 6.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Type Confusion allowing process crash or address dereference
Action: Immediate Patch
AI Analysis

Impact

The vulnerability is a type‑confusion flaw in Cpanel::JSON::XS versions 4.33 through 4.79 for Perl. Duplicate, non‑ASCII bare keys are mishandled in decode_hv when allow_barekey and dupkeys_as_arrayref options are enabled, causing a duplicate key to bypass the duplicate‑key check and overwrite earlier values. Subsequent processing can then treat a numeric key as a pointer, potentially dereferencing an attacker‑controlled address or causing a process crash. This flaw directly compromises integrity and availability of the application.

Affected Systems

Perl applications that depend on Cpanel::JSON::XS and enable allow_barekey with dupkeys_as_arrayref, including many web hosting control panels and custom services that accept external JSON payloads. The affected library versions range from 4.33 up to but not including 4.80; patching to 4.80 or later resolves the issue.

Risk and Exploitability

The CVSS score is 6.5 and EPSS is < 1%, but the lack of a KEV listing does not lessen the potential impact. An attacker who can supply untrusted JSON to the vulnerable code is likely able to trigger a crash or, under the best‑case scenario, coerce the program into dereferencing a chosen address. Because the flaw is triggered by external input, the attack vector is likely remote. The risk is high, especially in environments where untrusted data is processed without strict sanitisation.

Generated by OpenCVE AI on October 29, 2026 at 22:18 UTC.

Remediation

Vendor Solution

Upgrade to Cpanel-JSON-XS 4.80 or later.


OpenCVE Recommended Actions

  • Upgrade Cpanel::JSON-XS to version 4.80 or later as supplied by the vendor
  • Re‑evaluate configuration settings to avoid enabling allow_barekey and dupkeys_as_arrayref for parsing untrusted JSON
  • Test the updated library with your application’s deserialization logic to confirm the vulnerability no longer reproduces

Generated by OpenCVE AI on October 29, 2026 at 22:18 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 31 Oct 2026 10:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 29 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}


Mon, 19 Oct 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Rurban
Rurban cpanel::json::xs
Vendors & Products Rurban
Rurban cpanel::json::xs

Mon, 19 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Description Cpanel::JSON::XS versions from 4.33 before 4.80 for Perl miss duplicate non-ASCII bare keys, allowing type confusion under dupkeys_as_arrayref in decode_hv. With allow_barekey, which relaxed enables, a bare key containing a non-ASCII byte is stored as UTF-8 but looked up as raw bytes, so a repeated key escapes the duplicate-key check and replaces the earlier value. From 4.41, under dupkeys_as_arrayref, a bare repeat replaces the array that collects a key's values with a plain value, and the next quoted repeat pushes onto that value as if it were an array. A JSON integer there is dereferenced as a pointer. Untrusted JSON decoded with relaxed and dupkeys_as_arrayref can crash the process or dereference an address chosen by a JSON number.
Title Cpanel::JSON::XS versions from 4.33 before 4.80 for Perl miss duplicate non-ASCII bare keys, allowing type confusion under dupkeys_as_arrayref in decode_hv
Weaknesses CWE-176
CWE-843
References

Subscriptions

Rurban Cpanel::json::xs
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-29T16:35:40.051Z

Reserved: 2026-10-14T13:23:26.098Z

Link: CVE-2026-110674

cve-icon Vulnrichment

Updated: 2026-10-29T16:35:36.122Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-19T19:17:21.090

Modified: 2026-10-29T17:17:59.700

Link: CVE-2026-110674

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T22:30:13Z

Weaknesses
  • CWE-176

    Improper Handling of Unicode Encoding

  • CWE-843

    Access of Resource Using Incompatible Type ('Type Confusion')