CVE-2026-47770
Description
jq is a command-line JSON processor. Prior to 1.8.2, comparing two sufficiently deeply nested arrays with the == operator exhausts the C stack on jq's ordinary command-line surface, resulting in denial of service via stack exhaustion (uncontrolled recursion). The crash occurs in jq's recursive structural comparison code, with the recursion repeating through jvp_array_equal() and jv_equal() in src/jv.c when comparing deeply nested arrays; a nearby sort comparator path through jv_cmp() in src/jv_aux.c overflows the stack at a larger nesting depth from the same missing recursion guard. Anyone running jq comparisons on attacker-controlled deeply nested JSON values, or embedding jq in a context where untrusted data can reach the == comparison path, is affected. This vulnerability is fixed in 1.8.2.
Predictions
Heuristic predictions, AS-IS, for prioritization only.
Mitigations
Mitigation details
CVE-2026-47770 NameCVE-2026-47770 Descriptionjq is a command-line JSON processor. Prior to 1.8.2, comparing two sufficiently deeply nested arrays with the == operator exhausts the C stack on jq's ordinary command-line surface, resulting in denial of service via stack exhaustion (uncontrolled recursion). The crash occurs in jq's recursive structural comparison code, with the recursion repeatingβ¦
CVE-2026-47770
| Name | CVE-2026-47770 |
| Description | jq is a command-line JSON processor. Prior to 1.8.2, comparing two sufficiently deeply nested arrays with the == operator exhausts the C stack on jq's ordinary command-line surface, resulting in denial of service via stack exhaustion (uncontrolled recursion). The crash occurs in jq's recursive structural comparison code, with the recursion repeating through jvp_array_equal() and jv_equal() in src/jv.c when comparing deeply nested arrays; a nearby sort comparator path through jv_cmp() in src/jv_aux.c overflows the stack at a larger nesting depth from the same missing recursion guard. Anyone running jq comparisons on attacker-controlled deeply nested JSON values, or embedding jq in a context where untrusted data can reach the == comparison path, is affected. This vulnerability is fixed in 1.8.2. |
| Source | CVE (at NVD; CERT, ENISA, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
| References | DLA-4661-1, DLA-4662-1 |
Vulnerable and fixed packages
The table below lists information on source packages.
| Source Package | Release | Version | Status |
|---|---|---|---|
| jq (PTS) | bullseye | 1.6-2.1 | vulnerable |
| bullseye (security) | 1.6-2.1+deb11u3 | fixed | |
| bookworm | 1.6-2.1+deb12u1 | vulnerable | |
| bookworm (security) | 1.6-2.1+deb12u2 | fixed | |
| trixie | 1.7.1-6+deb13u2 | vulnerable | |
| forky | 1.8.1-8 | fixed | |
| sid | 1.8.2-1 | fixed |
The information below is based on the following data on fixed versions.
| Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
|---|---|---|---|---|---|---|
| jq | source | bullseye | 1.6-2.1+deb11u3 | DLA-4661-1 | ||
| jq | source | bookworm | 1.6-2.1+deb12u2 | DLA-4662-1 | ||
| jq | source | (unstable) | 1.8.1-7 |
Notes
https://github.com/jqlang/jq/commit/7122866869960b55cea3646bc91334ef55787831
https://github.com/jqlang/jq/pull/3539
Apply commands
https://github.com/jqlang/jq/commit/7122866869960b55cea3646bc91334ef55787831https://github.com/jqlang/jq/pull/3539
OS impact
SUSE Affected 1 release
| Version | Status | Fixed in |
|---|---|---|
| β | Affected | β |
Windows Affected 1 release
| Version | Status | Fixed in |
|---|---|---|
| β | Affected | β |
Debian Mixed 5 releases
| Version | Status | Fixed in |
|---|---|---|
| trixie | Affected | β |
| sid | Fixed | 1.8.1-7 |
| forky | Fixed | 1.8.1-7 |
| bullseye | Fixed | 1.6-2.1+deb11u3 |
| bookworm | Fixed | 1.6-2.1+deb12u2 |
Application impact
| Vendor | Product | Versions | Fixed |
|---|---|---|---|
| jqlang | jq | {"endExcluding":"1.8.2"} | 1.8.2 |
References
CWEs
CWE-674
Community-verified mitigations for this CVE will appear above when contributors publish them.
Verify integrity in audit chain (admin only). AS-IS.