Description
Cpanel::JSON::XS versions before 4.80 for Perl allow stack exhaustion via nested tagged values under allow_tags in decode_tag.

With allow_tags, "(" starts a tagged value. Its tag and value are decoded recursively, and each can start another tagged value. Unlike arrays and objects, this nesting is not counted against max_depth.

A run of "(" bytes exhausts the C stack and triggers an uncatchable segmentation fault regardless of max_depth.
Published: 2026-10-19
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Stack exhaustion leading to segmentation fault and denial of service
Action: Immediate Patch
AI Analysis

Impact

The flaw exists in the way Cpanel::JSON::XS parses nested tagged values when allow_tags is enabled, and it represents uncontrolled recursion, identified as CWE‑674. Each '(' character in the input starts a new tagged value; both the tag and its value are decoded recursively, and each can embed another tagged value. Because this recursion does not count against the normal max_depth restriction, a malicious payload that repeats '(' characters can exhaust the entire C stack, triggering an uncatchable segmentation fault and crashing the process.

Affected Systems

All installations of Cpanel::JSON::XS prior to version 4.80 that use the decode_tag routine with allow_tags enabled are susceptible. The issue is present in every release of the library before 4.80; no other vendor or product versions are reported as affected.

Risk and Exploitability

The dominant impact is a denial‑of‑service condition caused by a stack overflow. The vulnerability is simple to exploit: any input that reaches decode_tag under allow_tags can be crafted to trigger the crash. The CVSS score of 7.5 indicates high severity, and the EPSS score of less than 1% indicates a low likelihood of exploitation, while the lack of a CISA KEV entry suggests it is not yet known to be actively exploited. Nonetheless, an attacker who can inject a carefully constructed JSON payload can reliably crash the application, and the crash is fatal and uncatchable. The likely attack vector is through any user‑controllable interface that accepts JSON data with allow_tags enabled, either locally or remotely.

Generated by OpenCVE AI on October 29, 2026 at 22:18 UTC.

Remediation

Vendor Solution

Upgrade to Cpanel-JSON-XS 4.80 or later.


OpenCVE Recommended Actions

  • Upgrade Cpanel::JSON::XS to 4.80 or later. This version removes the unbounded recursion for tagged values.
  • If an upgrade is not immediately possible, disable allow_tags in the configuration to prevent the use of tagged values. This removes the avenue for stacking and effectively blocks the vulnerable code path.
  • Consider limiting the length or complexity of input passed to decode_tag, or sanitizing input to avoid excessive nesting as an additional precaution.

Generated by OpenCVE AI on October 29, 2026 at 22:18 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 31 Oct 2026 10:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 29 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Tue, 20 Oct 2026 00:00:00 +0000

Type Values Removed Values Added
First Time appeared Rurban
Rurban cpanel::json::xs
Vendors & Products Rurban
Rurban cpanel::json::xs

Mon, 19 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Description Cpanel::JSON::XS versions before 4.80 for Perl allow stack exhaustion via nested tagged values under allow_tags in decode_tag. With allow_tags, "(" starts a tagged value. Its tag and value are decoded recursively, and each can start another tagged value. Unlike arrays and objects, this nesting is not counted against max_depth. A run of "(" bytes exhausts the C stack and triggers an uncatchable segmentation fault regardless of max_depth.
Title Cpanel::JSON::XS versions before 4.80 for Perl allow stack exhaustion via nested tagged values under allow_tags in decode_tag
Weaknesses CWE-674
References

Subscriptions

Rurban Cpanel::json::xs
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-29T16:34:55.069Z

Reserved: 2026-10-14T13:22:59.046Z

Link: CVE-2026-110673

cve-icon Vulnrichment

Updated: 2026-10-29T16:34:44.491Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-19T19:17:20.877

Modified: 2026-10-29T17:17:59.553

Link: CVE-2026-110673

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T22:30:13Z

Weaknesses