OESA-2026-2589

Source
https://www.openeuler.org/en/security/security-bulletins/detail/?id=openEuler-SA-2026-2589
Import Source
https://repo.openeuler.org/security/data/osv/OESA-2026-2589.json
JSON Data
https://api.osv.dev/v1/vulns/OESA-2026-2589
Upstream
Published
2026-06-05T11:11:31Z
Modified
2026-08-18T01:20:03.361681224Z
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 dupkeysasarrayref is enabled.

decodehv() collapses duplicate object keys into an array reference under dupkeysasarrayref. The branch reached for a duplicate key tests SvTYPE (old_value) != SVt_RV && SvTYPE (SvRV (old_value)) != SVt_PVAV, which evaluates SvRV(oldvalue) 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 dupkeysasarrayref 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, decodejson() advances the input scalar's string pointer past the mark with SvPVset() and restores it only on the normal return path. When decoding aborts through a Perl exception, for example a filterjsonobject 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-SP3 / perl-Cpanel-JSON-XS

Package

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

Affected ranges

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

Ecosystem specific

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

Database specific

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