Skip to main content

Cpanel::JSON::XS EUVDEUVD-2026-34061

| CVE-2026-9516 HIGH
Release of Invalid Pointer or Reference (CWE-763)
2026-06-03 CPANSec GHSA-32gp-2g42-v9vc
7.5
CVSS 3.1 · Vendor: CPANSec
Share

Severity by source

Vendor (CPANSec) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
SUSE
HIGH
qualitative

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

4
Source Code Evidence Fetched
Jun 03, 2026 - 18:24 vuln.today
Analysis Generated
Jun 03, 2026 - 18:24 vuln.today
CVSS changed
Jun 03, 2026 - 18:22 NVD
7.5 (None) 7.5 (HIGH)
CVE Published
Jun 03, 2026 - 00:15 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

AnalysisAI

Denial of service in the Cpanel::JSON::XS Perl module before version 4.41 allows remote attackers to crash any caller that decodes a UTF-8 BOM prefixed JSON document with a throwing filter callback. The flaw arises from a missed pointer restoration when decode_json aborts via a Perl exception, leaving the input scalar with a corrupted SvPVX pointer that fatally aborts the interpreter on later free. No public exploit identified at time of analysis, and EPSS is very low (0.02%), but CISA SSVC marks the issue as automatable with partial technical impact.

Technical ContextAI

Cpanel::JSON::XS is a widely deployed high-performance XS (C-level) JSON parser for Perl, derived from JSON::XS and maintained by Reini Urban (rurban). To handle a leading 3-byte UTF-8 byte order mark, decode_json() mutates the caller's input SV in place using SvPV_set() to advance the string buffer pointer past the BOM and SvCUR_set() to shorten the recorded length, restoring both on the normal return path. CWE-763 (Release of Invalid Pointer or Reference) captures the root cause: when an embedded filter callback (filter_json_object, filter_json_single_key_object, or an allow_tags THAW handler) croaks, control unwinds via Perl exception handling and the restoration block is skipped, leaving the SV pointing 3 bytes into its own allocated buffer with a shortened length. When the perl allocator later frees that SV it receives a pointer that does not match the original malloc base, aborting the interpreter. The upstream fix in commit dfe1b41 removes the in-place SvPV_set mutation entirely and instead carries a local offset variable through the decoder, so the caller's SV is never modified and nothing needs to be restored on the exception path.

RemediationAI

Upgrade Cpanel::JSON::XS to version 4.41 or later, which removes the in-place SvPV_set BOM-skip and replaces it with a local offset (upstream commit dfe1b41a36caba51dc12a2917fe50285d1ffaa7b, https://github.com/rurban/Cpanel-JSON-XS/commit/dfe1b41a36caba51dc12a2917fe50285d1ffaa7b.patch); the 4.41 release is on CPAN and changes are documented at https://metacpan.org/release/RURBAN/Cpanel-JSON-XS-4.41/changes, with the oss-security announcement at https://seclists.org/oss-sec/2026/q2/792. Debian users should track the security update for bug#1138273 across the six tracked releases. If upgrading immediately is not possible, the targeted compensating controls are: strip a leading 3-byte UTF-8 BOM from inputs before calling decode (e.g. s/^\xEF\xBB\xBF// on the bytes) which eliminates the vulnerable code path entirely with no functional impact for JSON which is BOM-free by spec; or remove filter_json_object, filter_json_single_key_object, and allow_tags(1)+THAW handlers, or wrap their bodies so they cannot croak (return undef on error instead of die) - the trade-off is that filter callbacks lose their ability to signal hard failure to the parser, so callers must validate filtered output afterward.

More in Cpanel

View all
CVE-2023-29489 MEDIUM POC
6.1 Apr 27

An issue was discovered in cPanel before 11.109.9999.116. Rated medium severity (CVSS 6.1), this vulnerability is remote

CVE-2018-16236 MEDIUM POC
6.1 Aug 30

cPanel through 74 allows XSS via a crafted filename in the logs subdirectory of a user account, because the filename is

CVE-2020-26108 CRITICAL
9.8 Sep 25

cPanel before 88.0.13 mishandles file-extension dispatching, leading to code execution (SEC-488). Rated critical severit

CVE-2020-26105 CRITICAL
9.8 Sep 25

In cPanel before 88.0.3, insecure chkservd test credentials are used on a templated VM (SEC-554). Rated critical severit

CVE-2020-26101 CRITICAL
9.8 Sep 25

In cPanel before 88.0.3, insecure RNDC credentials are used for BIND on a templated VM (SEC-549). Rated critical severit

CVE-2020-26100 CRITICAL
9.8 Sep 25

chsh in cPanel before 88.0.3 allows a Jailshell escape (SEC-497). Rated critical severity (CVSS 9.8), this vulnerability

CVE-2020-26098 CRITICAL
9.8 Sep 25

cPanel before 88.0.3 mishandles the Exim filter path, leading to remote code execution (SEC-485). Rated critical severit

CVE-2020-10121 CRITICAL
9.8 Mar 17

cPanel before 84.0.20 allows a demo account to achieve code execution via PassengerApps APIs (SEC-546). Rated critical s

CVE-2020-10119 CRITICAL
9.8 Mar 17

cPanel before 84.0.20 allows a demo account to achieve remote code execution via a cpsrvd rsync shell (SEC-544). Rated c

CVE-2026-58048 CRITICAL
9.4 Jul 31

Privilege escalation to SQL root context in cPanel (and WP Squared) occurs when the database-rename operation fails to p

CVE-2020-10118 CRITICAL
9.1 Mar 17

cPanel before 84.0.20 allows a demo account to modify files via Branding API calls (SEC-543). Rated critical severity (C

CVE-2020-10117 CRITICAL
9.1 Mar 17

cPanel before 84.0.20 mishandles enforcement of demo checks in the Market UAPI namespace (SEC-542). Rated critical sever

Vendor StatusVendor

Debian

Bug #1138273
libcpanel-json-xs-perl
Release Status Fixed Version Urgency
bullseye vulnerable 4.25-1 -
bullseye (security) vulnerable 4.25-1+deb11u1 -
bookworm, bookworm (security) vulnerable 4.35-1+deb12u1 -
trixie (security), trixie vulnerable 4.39-2~deb13u1 -
forky, sid fixed 4.41-1 -
(unstable) fixed 4.41-1 -

SUSE

Severity: High
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Module for Package Hub 15 SP7 Fixed

Share

EUVD-2026-34061 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy