---
id: CVE-2026-110687
title: >-
  Cpanel::JSON::XS versions from 4.43 before 4.80 for Perl misorder byte-string
  keys during canonical encoding in utf16_cmp
summary: >-
  Cpanel::JSON::XS versions from 4.43 before 4.80 for Perl misorder byte-string
  keys during canonical encoding in utf16_cmp.


  canonical sorts keys by UTF-16 code units. When any key in a hash is UTF-8
  flagged, every key is decoded as UTF-8…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'
cvssSource: adp
cwe:
  - CWE-176
product: Cpanel-JSON-XS
affected:
  - Cpanel-JSON-XS >= 4.43 < 4.80
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-10-29T17:15:03.635936Z'
published: '2026-10-19'
updated: '2026-10-29'
sourceUpdated: '2026-10-29T17:15:37.701Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-110687'
references:
  - url: >-
      https://github.com/rurban/Cpanel-JSON-XS/commit/bb9da30b67f637f4d57922f0e043376363f28f0c.patch
  - url: 'https://metacpan.org/release/RURBAN/Cpanel-JSON-XS-4.80/changes'
tags:
  - cve.org
epss: 0.00422
epssPercentile: 0.36523
ingestedAt: '2026-10-19T18:35:50.142Z'
---

## Overview

Cpanel::JSON::XS versions from 4.43 before 4.80 for Perl misorder byte-string keys during canonical encoding in utf16_cmp.

canonical sorts keys by UTF-16 code units. When any key in a hash is UTF-8 flagged, every key is decoded as UTF-8 for the comparison, including byte-string keys that the encoder writes out as Latin-1 characters. A byte-string key whose bytes are valid UTF-8 is sorted out of order, and two keys that encode differently can compare equal and are left in hash order.

The same data can encode to different canonical documents across processes.

## Affected

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

## Remediation

Upgrade to Cpanel-JSON-XS 4.80 or later.
