OESA-2026-2588

Source
https://www.openeuler.org/en/security/security-bulletins/detail/?id=openEuler-SA-2026-2588
Import Source
https://repo.openeuler.org/security/data/osv/OESA-2026-2588.json
JSON Data
https://api.osv.dev/v1/vulns/OESA-2026-2588
Upstream
Published
2026-06-05T11:11:31Z
Modified
2026-08-18T01:20:03Z
Severity
  • 9.8 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
perl-Cpanel-JSON-XS security update
Details

This module converts Perl data structures to JSON and vice versa. Its primary goal is to be correct and its secondary goal is to be fast. To reach the latter goal it was written in C.

Security Fix(es):

Cpanel::JSON::XS versions before 4.41 for Perl allow type confusion via duplicate object keys when dupkeys_as_arrayref is enabled.

decode_hv() collapses duplicate object keys into an array reference under dupkeys_as_arrayref. The branch reached for a duplicate key tests SvTYPE (old_value) != SVt_RV && SvTYPE (SvRV (old_value)) != SVt_PVAV, which evaluates SvRV(old_value) before establishing that old_value is a reference. When the existing value is a plain scalar rather than an array reference, a non-reference scalar is dereferenced as a reference.

A caller decoding untrusted JSON with dupkeys_as_arrayref enabled is crashed, and the incompatible access follows a pointer taken from attacker controlled scalar contents.(CVE-2026-9334)

Cpanel::JSON::XS versions before 4.41 for Perl allow denial of service via UTF-8 BOM prefixed input when a decode filter callback throws.

To skip a leading 3-byte UTF-8 BOM, decode_json() advances the input scalar's string pointer past the mark with SvPV_set() and restores it only on the normal return path. When decoding aborts through a Perl exception, for example a filter_json_object callback that croaks, the restore is skipped and the scalar is left with its string pointer offset into its own buffer and a shortened length.

When that scalar is later freed, the allocator receives an invalid pointer and the interpreter aborts. A single BOM prefixed document decoded with a throwing filter callback crashes any caller.(CVE-2026-9516)

Database specific
{
    "severity": "Critical"
}
References

Affected packages

openEuler:24.03-LTS-SP1 / perl-Cpanel-JSON-XS

Package

Name
perl-Cpanel-JSON-XS
Purl
pkg:rpm/openEuler/perl-Cpanel-JSON-XS&distro=openEuler-24.03-LTS-SP1

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
4.37-3.oe2403sp1

Ecosystem specific

{
    "aarch64": [
        "perl-Cpanel-JSON-XS-4.37-3.oe2403sp1.aarch64.rpm",
        "perl-Cpanel-JSON-XS-debuginfo-4.37-3.oe2403sp1.aarch64.rpm",
        "perl-Cpanel-JSON-XS-debugsource-4.37-3.oe2403sp1.aarch64.rpm",
        "perl-Cpanel-JSON-XS-help-4.37-3.oe2403sp1.aarch64.rpm"
    ],
    "src": [
        "perl-Cpanel-JSON-XS-4.37-3.oe2403sp1.src.rpm"
    ],
    "x86_64": [
        "perl-Cpanel-JSON-XS-4.37-3.oe2403sp1.x86_64.rpm",
        "perl-Cpanel-JSON-XS-debuginfo-4.37-3.oe2403sp1.x86_64.rpm",
        "perl-Cpanel-JSON-XS-debugsource-4.37-3.oe2403sp1.x86_64.rpm",
        "perl-Cpanel-JSON-XS-help-4.37-3.oe2403sp1.x86_64.rpm"
    ]
}

Database specific

source
"https://repo.openeuler.org/security/data/osv/OESA-2026-2588.json"