CVE-2026-39956 Details
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.
A vulnerability in the jq command-line JSON processor has been identified, specifically in the _strindices builtin. This issue arises in versions after commit 69785bf77f86e2ea1b4a20ca86775916889e91c9. The vulnerability exists because the _strindices builtin directly passes its arguments to the jv_string_indexes() function without verifying that they are strings. The jv_string_indexes() function relies on assert() checks, which are removed in release builds compiled with -DNDEBUG. As a result, an attacker can easily crash jq by using input like _strindices(0). Furthermore, by crafting a numeric value that manipulates the IEEE-754 bit pattern to point to a specific memory address, an attacker can achieve a controlled pointer dereference and a limited memory read or probe capability. This vulnerability affects any deployment that processes untrusted jq filters with a release build.
Users should update to the patched version of jq, which includes the necessary runtime type checks to prevent this vulnerability. The patched version can be found in the official jq repository.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
CISA-ADP
Assessed Apr 14, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/jqlang/jq/security/advisories/GHSA-6gc3-3g9p-xx28 | CISA-ADP | ExploitVendor Advisory |
| https://github.com/jqlang/jq/commit/fdf8ef0f0810e3d365cdd5160de43db46f57ed03 | [email protected] | Patch |
| https://github.com/jqlang/jq/security/advisories/GHSA-6gc3-3g9p-xx28 | [email protected] | ExploitVendor Advisory |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-125 | Out-of-bounds Read | [email protected] |
| CWE-476 | NULL Pointer Dereference | [email protected] |
| CWE-843 | Access of Resource Using Incompatible Type ('Type Confusion') | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| jqlang jq | >= 2026-04-02, < 2026-04-08 |
CPE
Remediation
| |
Change History
7 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Sep 4, 2026 | CVE Modified | [email protected] |
| Sep 4, 2026 | CVE Modified | CISA-ADP |
| Jun 17, 2026 | CVE Modified | [email protected] |
| Jun 17, 2026 | CVE Modified | CISA-ADP |
| Apr 21, 2026 | Initial Analysis | [email protected] |
| Apr 14, 2026 | CVE Modified | CISA-ADP |
| Apr 13, 2026 | New CVE Received | [email protected] |