CVE-2026-39956: jq: Missing runtime type checks for _strindices lead to crash and limited memory disclosure
Vulnerability summary
CVE-2026-39956 is a medium (CVSS 6.1) Out-of-bounds Read vulnerability in jqlang jq. EPSS estimates a 0.17% chance of exploitation in the next 30 days, higher than 6.9% of scored vulnerabilities. 1 public exploit is recorded.
Not severe (CVSS 6.1, local access); no exploitation reported by the 5 checked sources
Source freshness unavailable
How is this decided?Advisory lineage
Upstream 0 · Downstream 10 · Related 9Timeline
- 13-04-2026PublishedVulnerability first disclosed.
- 04-09-2026Last modifiedVulnerability information updated.
Description
jq is a command-line JSON processor. Prior to version 1.8.2, the _strindices builtin in jq's src/builtin.c passes its arguments directly to jv_string_indexes() without verifying they are strings, and jv_string_indexes() in src/jv.c relies solely on assert() checks that are stripped in release builds compiled with -DNDEBUG. This allows an attacker to crash jq trivially with input like _strindices(0), and by crafting a numeric value whose IEEE-754 bit pattern maps to a chosen pointer, achieve a controlled pointer dereference and limited memory read/probe primitive. Any deployment that evaluates untrusted jq filters against a release build is vulnerable. This issue has been patched in commit fdf8ef0f0810e3d365cdd5160de43db46f57ed03, which is part of version 1.8.2.
CVSS metrics
5 scores · 5 sources · 1 version- OSV · AlpineEcosystem advisory · calculated6.1MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
- OSV · UbuntuEcosystem advisory · calculated6.1MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
- OSV · DebianEcosystem advisory · calculated6.1MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
- NVDNIST6.1MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
EPSS trend
Probability
0.17%
Chance of exploitation in the next 30 days
Percentile
7%
Versus all other CVEs
30-day change
Increase +0.01 pp
From 0.17% on 04-10-2026
Known exploited
Compare KEV catalogsNot in the CISA KEV catalog.
Not in the ENISA CNW catalog.
Not in the CIRCL catalog.
Public exploits
1 foundJq
Maturity: poc
Weaknesses
CWE · root cause- CWE-125Out-of-bounds ReadThe product reads data past the end, or before the beginning, of the intended buffer.
- CWE-476NULL Pointer DereferenceThe product dereferences a pointer that it expects to be valid but is NULL.
- CWE-843Access of Resource Using Incompatible TypeThe product allocates or initializes a resource such as a pointer, object, or variable using one type, but it later accesses that resource using a type that is incompatible with the original type.
Affected systems
Known conditions: local access, no authentication, user interaction (CVSS vector). Other conditions: not stated in public data.
Alpine1 product
- jq≥ 2026-04-02, < 1.8.2-r0
Debian1 product
- jq< 1.6-2.1+deb12u2 | < 1.7.1-6+deb13u2 | < 1.8.1-5
Jqlang1 product
- jq< 1.8.2 | ≥ 2026-04-02, < 2026-04-08
Ubuntu1 product
- jq< 1.5+dfsg-1ubuntu0.1+esm4 | < 1.5+dfsg-2ubuntu0.1~esm2 | < 1.6-1ubuntu0.20.04.1+esm2 | < 1.6-2.1ubuntu3.2 | < 1.7.1-3ubuntu0.24.04.2 | < 1.8.1-3ubuntu1.1 | < 1.8.1-4ubuntu2
4 vendors · 4 products
References
9 links- github.com/jqlang/jq/security/advisories/GHSA-6gc3-3g9p-xx28X Refsource CONFIRMREPORTExploitVendor Advisory