jq: Missing runtime type checks for _strindices lead to crash and limited memory disclosure
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- Low · None · High
- Fix status
- Partial Red Hat: 1 fixed, 6 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat. Impact type from CWE-476.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA jq (jqlang) Fixed in 1.8.2
Red Hat 1 advisory
- RHSA-2026:8579 Released 2026-04-16 · Red Hat rating ImportantRed Hat Hardened Images RPMs bug fix and enhancement update
- Red Hat Hardened Images jq-1.8.1-3.hum1@aarch64, jq-1.8.1-3.hum1@src, jq-1.8.1-3.hum1@x86_64 +2
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Ansible Automation Platform 2 | Affected | No fix yet: Fix deferred |
| Red Hat Ceph Storage 4 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 10 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 8 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 9 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet: Fix deferred |
| Red Hat Hardened Images | Fixed | RHSA-2026:8579 |
Timeline
- 2026-10-02 Threatist record created from CVE-2026-39956
References
More jqlang Jq vulnerabilities
- TI-2026-24844 jq: Integer overflow in jvp_string_append() allows Heap-based Buffer Overflow CVSS 3.1HIGH 8.2
- TI-2025-30431 AddressSanitizer: stack-buffer-overflow in jq_fuzz_execute (jv_string_vfmt) CVSS 4.0HIGH 7.7
- TI-2023-26962 decToString in decNumber/decNumber.c in jq 88f01a7 has a one-byte out-of-bounds write via… CVSS 3.1HIGH 7.5
- TI-2026-28834 jq: Out-of-Bounds Read in jv_parse_sized() Error Formatting for Non-NUL-Terminated Counted Buffers CVSS 4.0MEDIUM 6.9
- TI-2024-35799 Type confusion in jqlang jq CVSS 3.1HIGH 8.1
- TI-2026-36743 jq --rawfile invalid-state reuse after String too long causes heap-buffer-overflow CVSS 3.1HIGH 7.1
Sources
- CVE-2026-39956 · CVE Program
- CVE-2026-39956 · NVD
- FIRST EPSS
- CVE-2026-39956 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences