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.
References
Link Resource
https://github.com/jqlang/jq/commit/0c7d133c3c7e37c00b6d46b658a02244fdd3c784
https://github.com/jqlang/jq/security/advisories/GHSA-wwj8-gxm6-jc29
https://access.redhat.com/errata/RHSA-2026:16252
https://access.redhat.com/errata/RHSA-2026:16692
https://access.redhat.com/errata/RHSA-2026:16693
https://access.redhat.com/errata/RHSA-2026:18040
https://access.redhat.com/errata/RHSA-2026:18042
https://access.redhat.com/errata/RHSA-2026:18043
https://access.redhat.com/errata/RHSA-2026:18044
https://access.redhat.com/errata/RHSA-2026:18045
https://access.redhat.com/errata/RHSA-2026:18046
https://access.redhat.com/errata/RHSA-2026:18047
https://access.redhat.com/errata/RHSA-2026:18048
https://access.redhat.com/errata/RHSA-2026:19151
https://access.redhat.com/errata/RHSA-2026:19365
https://access.redhat.com/errata/RHSA-2026:23233
https://access.redhat.com/errata/RHSA-2026:23245
https://access.redhat.com/errata/RHSA-2026:25044
https://access.redhat.com/errata/RHSA-2026:25096
https://access.redhat.com/errata/RHSA-2026:25181
https://access.redhat.com/errata/RHSA-2026:26528
https://access.redhat.com/errata/RHSA-2026:26542
https://access.redhat.com/errata/RHSA-2026:28887
https://access.redhat.com/errata/RHSA-2026:30078
https://access.redhat.com/errata/RHSA-2026:30087
https://access.redhat.com/errata/RHSA-2026:30088
https://access.redhat.com/errata/RHSA-2026:30089
https://access.redhat.com/errata/RHSA-2026:34098
https://access.redhat.com/errata/RHSA-2026:8579
https://access.redhat.com/security/cve/CVE-2026-40164
https://bugzilla.redhat.com/show_bug.cgi?id=2458084
https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-40164.json
Configurations

No configuration.

History

26 Oct 2026, 22:10

Type Values Removed Values Added
Summary
  • (es) jq es un procesador JSON de línea de comandos. Antes del commit 0c7d133c3c7e37c00b6d46b658a02244fdd3c784, jq utilizaba MurmurHash3 con una semilla codificada, visible públicamente (0x432A9843) para todas las operaciones de tabla hash de objetos JSON, lo que permitía a un atacante precalcular colisiones de claves sin conexión. Al proporcionar un objeto JSON manipulado (~100 KB) donde todas las claves se mapeaban al mismo cubo, las búsquedas en la tabla hash se degradaban de O(1) a O(n), convirtiendo cualquier expresión de jq en una operación O(n²) y causando un agotamiento significativo de la CPU. Esto afectó a casos de uso comunes de jq como pipelines de CI/CD, servicios web y scripts de procesamiento de datos, y fue mucho más práctico de explotar que los problemas existentes de desbordamiento de montículo, ya que solo requería una pequeña carga útil. Este problema ha sido parcheado en el commit 0c7d133c3c7e37c00b6d46b658a02244fdd3c784.

Information

Published : 2026-04-14 00:16

Updated : 2026-10-26 22:10


NVD link : CVE-2026-40164

Mitre link : CVE-2026-40164

CVE.ORG link : CVE-2026-40164


JSON object : View

Products Affected

No product.

CWE
CWE-328

Use of Weak Hash

CWE-407

Inefficient Algorithmic Complexity

CWE-341

Predictable from Observable State