CVE-2026-14803: CWE-674 Uncontrolled Recursion in SRI Mojo::JSON
Mojo::JSON versions before 9.47 for Perl contain an uncontrolled recursion vulnerability in the pure-Perl JSON decoder. The decoder's recursive functions have no depth limit, allowing a crafted deeply nested JSON document to cause excessive memory consumption. This can lead to denial of service by exhausting process memory. The vulnerability affects the pure-Perl decode path used when Cpanel::JSON::XS is not installed or disabled. The faster Cpanel::JSON::XS path is not affected.
AI Analysis
Technical Summary
CVE-2026-14803 describes an uncontrolled recursion vulnerability (CWE-674) in Mojo::JSON versions prior to 9.47. The pure-Perl JSON decoder functions (_decode_value, _decode_array, _decode_object) recurse without a depth limit, enabling a small but deeply nested JSON input to consume excessive memory. This vulnerability is triggered when the pure-Perl decoder is used, which is the default if the Cpanel::JSON::XS module is absent or explicitly disabled via the MOJO_NO_JSON_XS environment variable. Attackers can exploit this by sending malicious JSON to any caller decoding untrusted JSON, such as Mojo::Message::json accessed via $c->req->json, causing denial of service through memory exhaustion. The Cpanel::JSON::XS fast path is not vulnerable. No CVSS score or official remediation level is provided, and no known exploits are reported in the wild.
Potential Impact
An attacker can cause denial of service by sending a crafted deeply nested JSON document that triggers unbounded recursion in the pure-Perl decoder, leading to excessive memory consumption and process exhaustion. This affects applications using Mojo::JSON versions before 9.47 when the pure-Perl decoder is active (i.e., when Cpanel::JSON::XS is not installed or disabled). The impact is limited to denial of service via memory exhaustion; no code execution or data leakage is described.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, users should ensure that the Cpanel::JSON::XS module is installed and enabled, as the fast path is not affected. Avoid disabling Cpanel::JSON::XS (e.g., do not set MOJO_NO_JSON_XS=1) to prevent fallback to the vulnerable pure-Perl decoder. Additionally, validate or limit the depth of JSON inputs before decoding to reduce risk of memory exhaustion.
CVE-2026-14803: CWE-674 Uncontrolled Recursion in SRI Mojo::JSON
Description
Mojo::JSON versions before 9.47 for Perl contain an uncontrolled recursion vulnerability in the pure-Perl JSON decoder. The decoder's recursive functions have no depth limit, allowing a crafted deeply nested JSON document to cause excessive memory consumption. This can lead to denial of service by exhausting process memory. The vulnerability affects the pure-Perl decode path used when Cpanel::JSON::XS is not installed or disabled. The faster Cpanel::JSON::XS path is not affected.
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
CVE-2026-14803 describes an uncontrolled recursion vulnerability (CWE-674) in Mojo::JSON versions prior to 9.47. The pure-Perl JSON decoder functions (_decode_value, _decode_array, _decode_object) recurse without a depth limit, enabling a small but deeply nested JSON input to consume excessive memory. This vulnerability is triggered when the pure-Perl decoder is used, which is the default if the Cpanel::JSON::XS module is absent or explicitly disabled via the MOJO_NO_JSON_XS environment variable. Attackers can exploit this by sending malicious JSON to any caller decoding untrusted JSON, such as Mojo::Message::json accessed via $c->req->json, causing denial of service through memory exhaustion. The Cpanel::JSON::XS fast path is not vulnerable. No CVSS score or official remediation level is provided, and no known exploits are reported in the wild.
Potential Impact
An attacker can cause denial of service by sending a crafted deeply nested JSON document that triggers unbounded recursion in the pure-Perl decoder, leading to excessive memory consumption and process exhaustion. This affects applications using Mojo::JSON versions before 9.47 when the pure-Perl decoder is active (i.e., when Cpanel::JSON::XS is not installed or disabled). The impact is limited to denial of service via memory exhaustion; no code execution or data leakage is described.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, users should ensure that the Cpanel::JSON::XS module is installed and enabled, as the fast path is not affected. Avoid disabling Cpanel::JSON::XS (e.g., do not set MOJO_NO_JSON_XS=1) to prevent fallback to the vulnerable pure-Perl decoder. Additionally, validate or limit the depth of JSON inputs before decoding to reduce risk of memory exhaustion.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- CPANSec
- Date Reserved
- 2026-07-05T21:23:29.979Z
- Cvss Version
- null
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a4b0a3227e9c7971969ea54
Added to database: 07/06/2026, 01:51:46 UTC
Last enriched: 07/06/2026, 02:06:23 UTC
Last updated: 07/06/2026, 02:46:03 UTC
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.