CVE-2026-40164
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.
Scoring
- Severity
- HIGH
- CVSS base score
- 7.5
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- EPSS probability
- 0.37%
- CWE
- CWE-328, CWE-407
- Published
- 2026-04-13
- Last modified
- 2026-09-01
Affected products
- jqlang jq
Weakness type
Related vulnerabilities
- CVE-2026-15605 — wandb Artifact Integrity Validation hashutil.py ArtifactManifestEntry.download weak hash
- CVE-2026-41879 — Weak password hashing in R-SOFT DMS
- CVE-2026-14742 — langchain-ai langgraph Task Result Cache _cache.py _freeze weak hash
- CVE-2026-14738 — exo-explore exo Vision Feature Cache vision.py _image_cache_key weak hash
- CVE-2026-14630 — ForceInjection AI-fundermentals Memory Recall smart_customer_service.py get_conversation_history weak hash
- CVE-2026-10540 — Weak password hash protection in Control-M/Entreprise Manager
- CVE-2026-13455 — PostgreSQL Anonymizer: Unrestricted function can leak the secret salt
- CVE-2026-53692 — Weak hashing algorithm in Redeight CMS