CVE-2026-40164: jq: Algorithmic complexity DoS via hardcoded MurmurHash3 seed
jq is a command-line JSON processor. Before commit 0c7d133c3c7e37c00b6d46b658a02244fdd3c784, jq used MurmurHash3 with a hardcoded, publicly visible seed (0x432A9843) for all JSON object hash table operations, which allowed an attacker to precompute key collisions offline. By supplying a crafted JSON object (~100 KB) where all keys hashed to the same bucket, hash table lookups degraded from O(1) to O(n), turning any jq expression into an O(n²) operation and causing significant CPU exhaustion. This affected common jq use cases such as CI/CD pipelines, web services, and data processing scripts, and was far more practical to exploit than existing heap overflow issues since it required only a small payload. This issue has been patched in commit 0c7d133c3c7e37c00b6d46b658a02244fdd3c784.
Security readout for executives and security teams
Plain-English summary
A small, specially crafted JSON object can force vulnerable jq builds to consume excessive CPU. Systems that automatically process attacker-influenced JSON may slow significantly, time out, or lose availability. The issue affects builds made before the cited corrective commit.
Executive priority
Prioritize remediation for internet-facing services and business-critical automation that pass untrusted JSON to jq. Treat exposed production paths as urgent because a small request can impose disproportionate CPU cost. Schedule lower-exposure, trusted-input systems promptly through normal patching while verifying compensating resource controls.
Technical view
jq used MurmurHash3 with the same public seed for every object hash table. Attackers could precompute many keys mapping to one bucket, degrading expected O(1) lookups to O(n). Processing an approximately 100 KB collision-heavy object could therefore become O(n²), exhausting CPU without authentication or user interaction.
Likely exposure
Exposure is highest where a vulnerable jq build processes untrusted or attacker-influenced JSON in web services, CI/CD pipelines, or automated data workflows. Internal-only use with trusted inputs reduces likelihood, but inventory must include embedded jq binaries, containers, build images, and packaged dependencies.
Exploitation context
The supplied record is not in KEV, and the sources provided do not establish active exploitation. Exploitation is nevertheless described as practical because collisions can be prepared offline and delivered in a relatively small JSON object. Impact is availability loss; the cited CVSS reports no confidentiality or integrity impact.
Researcher notes
The weakness is deterministic hash collision behavior caused by a fixed MurmurHash3 seed, categorized under CWE-328, CWE-341, and CWE-407. The boundary is defined by inclusion of the corrective commit rather than a release number in the supplied evidence. Verify distributor backports independently; package versions alone may not reflect upstream commit history.
Mitigation direction
Update jq to a vendor-supported build containing commit 0c7d133c3c7e37c00b6d46b658a02244fdd3c784.
Apply the applicable Red Hat security erratum when using affected Red Hat packages.
Temporarily restrict untrusted JSON from reaching vulnerable jq processing paths.
Enforce CPU, execution-time, and input-size limits around jq workloads where feasible.
Validation and detection
Inventory jq binaries, packages, containers, CI images, and embedded copies across affected workflows.
Confirm each deployed build includes the corrective commit or an applicable vendor backport.
Trace whether external users or upstream systems can influence JSON passed to jq.
Review monitoring for unusual CPU spikes, jq timeouts, worker exhaustion, or pipeline delays.
Retest representative workloads after updating and confirm resource limits fail safely.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-328: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-328 · source CWE mapping
Use of Weak Hash
Use of Weak Hash represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Predictable from Observable State represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Inefficient Algorithmic Complexity represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.