---
id: CVE-2026-110674
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
summary: >-
  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
  by…
severity: none
cwe:
  - CWE-843
  - CWE-176
product: Cpanel-JSON-XS
affected:
  - Cpanel-JSON-XS >= 4.33 < 4.80
published: '2026-10-19'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T18:11:25.890Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-110674'
references:
  - url: >-
      https://github.com/rurban/Cpanel-JSON-XS/commit/c52037857d6a99d96ebd1ce3e2fa769505f028cf.patch
  - url: 'https://metacpan.org/release/RURBAN/Cpanel-JSON-XS-4.80/changes'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-9334'
tags:
  - cve.org
ingestedAt: '2026-10-19T18:35:50.146Z'
---

## Overview

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.

## Affected

- `Cpanel-JSON-XS >= 4.33 < 4.80`

## Remediation

Upgrade to Cpanel-JSON-XS 4.80 or later.
