Read the docs
TI-2026-28812 Aliases CVE-2026-39956

jq: Missing runtime type checks for _strindices lead to crash and limited memory disclosure

Priority MEDIUM 60CWE-125Published · Updated

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

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00174 6th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Partial jq (jqlang): 1.8.2Red Hat: 1 advisoryRed Hat: 1 fixed, 6 without a fix

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

VendorProductAffected versionsFixed inStatusSource
jqlangjqbefore 1.8.21.8.2Patch availableCNA
  • jq Vendorjqlang Affected before 1.8.2 Fixed in 1.8.2 Patch available CNA

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:jqlang:jq:*:*:*:*:*:*:*:*2026-04-02 to before 2026-04-08Vulnerablejqlang
  • cpe:2.3:a:jqlang:jq:*:*:*:*:*:*:*:* Versions 2026-04-02 to before 2026-04-08 Vulnerable ·jqlang

Remediation

  • Fix · CNA jq (jqlang) Fixed in 1.8.2

Red Hat 1 advisory

  • RHSA-2026:8579 Released 2026-04-16 · Red Hat rating Important
    Red 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 →

ProductStatusPlan or fix
Red Hat Ansible Automation Platform 2AffectedNo fix yet: Fix deferred
Red Hat Ceph Storage 4AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 10AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 8AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 9AffectedNo fix yet: Fix deferred
Red Hat OpenShift Container Platform 4AffectedNo fix yet: Fix deferred
Red Hat Hardened ImagesFixed RHSA-2026:8579

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-39956

References

  • 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
See all 21 →

Sources