Skip to main content
VulnerabilityPublished Updated

CVE-2026-33947: jqlang jq · Uncontrolled Recursion

Affects jqlang jqSource CVE Database V5

0
Compare

Not known to be exploited · CVSS 6.2 Medium.

Data as of 30 Oct 2026, 11:52 UTC

CVSS 3.1 base score
6.2Medium
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.2% chance of exploitation in 30 days – higher than 14% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 13 Apr 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.

What to do

Affected software

ProductAffectedFixed in
jqlangjqAffected
  • =< fb59f1491058d58bdc3e8dd28f1773d1ac690a1f
Fixed in–
GitHubjqlang/jqpkg:github/jqlang/jqOther threatsAffected
  • <=1.8.1
Fixed in–

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

A fix is available in jq at commit fb59f1491058d58bdc3e8dd28f1773d1ac690a1f. Users should upgrade jq to a version including this commit or later to remediate this vulnerability. Patch status is not explicitly stated in vendor advisories here, so verify the vendor's official release notes for the fixed version. Until patched, avoid processing untrusted JSON input with the affected jq functions.

Description

jq is a command-line JSON processor. In versions 1.8.1 and below, functions jv_setpath(), jv_getpath(), and delpaths_sorted() in jq's src/jv_aux.c use unbounded recursion whose depth is controlled by the length of a caller-supplied path array, with no depth limit enforced. An attacker can supply a JSON document containing a flat array of ~65,000 integers (~200 KB) that, when used as a path argument by a trusted jq filter, exhausts the C call stack and crashes the process with a segmentation fault (SIGSEGV). This bypass works because the existing MAX_PARSING_DEPTH (10,000) limit only protects the JSON parser, not runtime path operations where arrays can be programmatically constructed to arbitrary lengths. The impact is denial of service (unrecoverable crash) affecting any application or service that processes untrusted JSON input through jq's setpath, getpath, or delpaths builtins. This issue has been addressed in commit fb59f1491058d58bdc3e8dd28f1773d1ac690a1f.

References

Community reviews

Loading reviews…