Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify Perl service accepting JSON with filter callbacks
-
DeliverySend POST with UTF-8 BOM prefixed JSON body
-
ExploitTrigger filter_json_object/THAW callback to croak
-
Installdecode_json skips SvPV_set restore
-
C2Corrupted SV freed with offset pointer
-
ExecutePerl interpreter aborts
-
ImpactWorker process crash and DoS
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Pointer release safety
|
| Exploitation Conditions | Exploitation requires the target application to (1) be decoding attacker-controlled JSON via Cpanel::JSON::XS prior to 4.41, (2) have the input begin with a 3-byte UTF-8 BOM (0xEF 0xBB 0xBF), and (3) have one of three specific callbacks registered on the JSON object that can throw during decoding: filter_json_object, filter_json_single_key_object, or allow_tags(1) with a THAW handler that croaks. The vulnerability cannot be triggered against a default Cpanel::JSON::XS configuration with no filter callbacks; it also cannot be triggered if the input lacks a leading UTF-8 BOM, because the buggy SvPV_set path is only taken when the BOM-skip branch executes. No authentication is required at the JSON layer (PR:N) and no user interaction is needed, but reachability depends entirely on the calling Perl application's choice to register a throwing filter callback - a non-default deployment pattern. |
| Impact | Signals diverge sharply. CVSS 7.5 (AV:N/AC:L/PR:N/UI:N/C:N/I:N/A:H) reflects pure availability impact reachable over network with no privileges or interaction, which is appropriate for a library that frequently parses untrusted JSON on HTTP boundaries. However the network vector only applies when the calling application both exposes JSON decoding to attacker-controlled input AND has explicitly registered a filter_json_object, filter_json_single_key_object, or allow_tags THAW callback that can throw - a non-default configuration most Perl JSON consumers do not use. EPSS at 0.02% (4th percentile) and the absence from CISA KEV reinforce that real-world exploitation is unlikely to be widespread. CISA SSVC marks Exploitation:none, Automatable:yes, Technical Impact:partial, which is consistent: trivially scriptable where reachable, but DoS-only and conditional on filter callbacks. Treat this as a targeted-risk patch rather than an emergency: prioritize for Perl web services and CPAN-consuming applications that register JSON filter callbacks, deprioritize for general Perl deployments. |
| Exploit ScenarioDerived | An attacker submits a single JSON document beginning with the three-byte UTF-8 BOM (0xEF 0xBB 0xBF) to a network-exposed Perl service whose JSON parser is configured with a filter_json_object, filter_json_single_key_object, or allow_tags+THAW callback that can throw on malformed or unexpected content. The decoder advances the input SV's buffer pointer past the BOM, the filter callback croaks while processing the document, and the SV is left with an offset pointer; when Perl later frees the scalar the allocator receives an invalid base and aborts the worker, crashing the service. No public exploit is identified at time of analysis, but the proof-of-concept test cases shipped in the patch (t/31_bom.t) demonstrate the three reachable trigger paths in a few lines of Perl. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 03, 2026
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.
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.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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.
Know when Cpanel gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
2DescriptionCVE.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.
Executive ViewAI
Cpanel::JSON::XS Perl module contains a denial-of-service vulnerability affecting applications that process JSON data with UTF-8 BOM prefixes, potentially impacting service availability across dependent systems. Although no public exploit has been identified and real-world exploitation risk is minimal, the HIGH CVSS rating and wide use of this library in production environments warrant prompt patching. Organizations should prioritize identifying affected systems and upgrading to version 4.41 or later within 30 days.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Related Vulnerabilities in Cpanel::JSON::XS Type Confusion and DoS Flaws
View all 2Root-level remote code execution in WebPros cPanel is achievable by any mail-enabled account through a SQL injection fla
An issue was discovered in cPanel before 11.109.9999.116. Rated medium severity (CVSS 6.1), this vulnerability is remote
cPanel through 74 allows XSS via a crafted filename in the logs subdirectory of a user account, because the filename is
OS command injection in cPanel and WP Squared allows an authenticated, low-privileged hosting account holder to execute
cPanel before 88.0.13 mishandles file-extension dispatching, leading to code execution (SEC-488). Rated critical severit
In cPanel before 88.0.3, insecure chkservd test credentials are used on a templated VM (SEC-554). Rated critical severit
In cPanel before 88.0.3, insecure RNDC credentials are used for BIND on a templated VM (SEC-549). Rated critical severit
chsh in cPanel before 88.0.3 allows a Jailshell escape (SEC-497). Rated critical severity (CVSS 9.8), this vulnerability
cPanel before 88.0.3 mishandles the Exim filter path, leading to remote code execution (SEC-485). Rated critical severit
cPanel before 84.0.20 allows a demo account to achieve code execution via PassengerApps APIs (SEC-546). Rated critical s
cPanel before 84.0.20 allows a demo account to achieve remote code execution via a cpsrvd rsync shell (SEC-544). Rated c
Argument injection in WP Toolkit for cPanel 6.11.2-10794 and earlier allows a remote authenticated (low-privileged, PR:L
Same weakness CWE-763 – Release of Invalid Pointer or Reference
View allSame technique Denial Of Service
View allVendor StatusVendor
Debian
Bug #1138273| 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 |
EUVD-2026-34061
GHSA-32gp-2g42-v9vc
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB