Description
Cpanel::JSON::XS versions before 4.80 for Perl allow memory exhaustion by encoding exponent notation as full decimal digits under allow_bignum.

With allow_bignum, a JSON number with a fraction or exponent decodes to a Math::BigFloat, which stores the exponent separately and so decodes cheaply. Encoding it untyped or as JSON_TYPE_FLOAT writes the plain decimal form with one digit per unit of exponent. Nothing bounds the exponent, so the 12-byte text [1e30000000] encodes to 30 MB.

Untrusted JSON decoded with allow_bignum and encoded again can exhaust memory and CPU.
Published: 2026-10-19
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Memory exhaustion via large exponent notation in Cpanel::JSON::XS
Action: Immediate Patch
AI Analysis

Impact

Cpanel::JSON::XS versions prior to 4.80 allow an attacker to cause a memory exhaustion attack by providing a JSON number containing a large exponent when the allow_bignum option is enabled. The decoding process creates a Math::BigFloat, storing the exponent separately and thus decoding cheaply. However, when the number is re‑encoded untyped or as JSON_TYPE_FLOAT, the decimal representation expands one character per exponent digit, creating an arbitrarily large string. In the example provided, a 12‑byte text [1e30000000] becomes a 30 MB string, and repeated use can exhaust memory and CPU resources, resulting in a denial‑of‑service condition. The vulnerability is limited to the decoding/encoding of JSON data and does not allow escalation of privileges or code execution.

Affected Systems

The affected component is the Perl module Cpanel::JSON::XS, specifically any version earlier than 4.80. Systems that use this module with the allow_bignum option enabled and that process untrusted JSON input are vulnerable. No specific operating system or Perl version threshold is mentioned, but the problem exists across all platforms where the module is installed.

Risk and Exploitability

The CVSS score of 7.5 indicates high severity, while the EPSS score of <1% suggests a low probability of exploitation. However, the fact that an attacker can supply untrusted JSON to an application that uses Cpanel::JSON::XS with allow_bignum enabled provides a clear path to a denial‑of‑service. Since the vulnerability is listed in no known exploited vulnerability catalog, it is not confirmed as being actively used in the wild, but the inherent resource exhaustion potential carries a high severity risk for any exposed service.

Generated by OpenCVE AI on October 29, 2026 at 21:45 UTC.

Remediation

Vendor Solution

Upgrade to Cpanel-JSON-XS 4.80 or later.


OpenCVE Recommended Actions

  • Upgrade to Cpanel-JSON-XS 4.80 or later
  • If upgrade is not feasible, disable or avoid using the allow_bignum option when parsing or re‑encoding JSON from untrusted sources
  • Implement input validation or rate limiting on JSON payloads to constrain request size and frequency, reducing the chance of memory exhaustion

Generated by OpenCVE AI on October 29, 2026 at 21:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 30 Oct 2026 21: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'}


Mon, 19 Oct 2026 21:45: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 memory exhaustion by encoding exponent notation as full decimal digits under allow_bignum. With allow_bignum, a JSON number with a fraction or exponent decodes to a Math::BigFloat, which stores the exponent separately and so decodes cheaply. Encoding it untyped or as JSON_TYPE_FLOAT writes the plain decimal form with one digit per unit of exponent. Nothing bounds the exponent, so the 12-byte text [1e30000000] encodes to 30 MB. Untrusted JSON decoded with allow_bignum and encoded again can exhaust memory and CPU.
Title Cpanel::JSON::XS versions before 4.80 for Perl allow memory exhaustion by encoding exponent notation as full decimal digits under allow_bignum
Weaknesses CWE-405
References

Subscriptions

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

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-29T16:41:41.919Z

Reserved: 2026-10-14T13:23:56.248Z

Link: CVE-2026-110676

cve-icon Vulnrichment

Updated: 2026-10-29T16:41:14.355Z

cve-icon NVD

Status : Awaiting Analysis

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

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

Link: CVE-2026-110676

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T22:00:09Z

Weaknesses
  • CWE-405

    Asymmetric Resource Consumption (Amplification)