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.
{
"cna_assigner": "CPANSec",
"cwe_ids": [
"CWE-176"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/110xxx/CVE-2026-110687.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "4.43"
},
{
"fixed": "4.80"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "bb9da30b67f637f4d57922f0e043376363f28f0c"
}
],
"source": "REFERENCES_COMMIT"
}
]
}