7.5 HIGH
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): None (N)
- Integrity (I): None (N)
- Availability (A): High (H)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): None (N)
- Modified Confidentiality (MC): None (N)
- Modified Scope (MS): Unchanged (U)
- Modified Integrity (MI): None (N)
- Modified Availability (MA): High (H)
by @LeSuisse Activity log
- Created suggestion
-
@LeSuisse
ignored
38 packages
- ijq
- jql
- jqp
- njq
- gojq
- jqfmt
- jq-lsp
- jquake
- jq-zsh-plugin
- python312Packages.jq
- python313Packages.jq
- python314Packages.jq
- python312Packages.llm-jq
- python313Packages.llm-jq
- python314Packages.llm-jq
- haskellPackages.js-jquery
- tests.fetchpatch.relative
- python312Packages.xstatic-jquery
- python313Packages.xstatic-jquery
- python314Packages.xstatic-jquery
- python312Packages.django-jquery-js
- python313Packages.django-jquery-js
- python314Packages.django-jquery-js
- python312Packages.xstatic-jquery-ui
- python313Packages.xstatic-jquery-ui
- python314Packages.xstatic-jquery-ui
- tree-sitter-grammars.tree-sitter-jq
- tests.fetchNextcloudApp.simple-sha512
- vimPlugins.nvim-treesitter-parsers.jq
- python312Packages.sphinxcontrib-jquery
- python313Packages.sphinxcontrib-jquery
- python314Packages.sphinxcontrib-jquery
- tests.fetchFromGitHub.submodule-leave-git
- python312Packages.xstatic-jquery-file-upload
- python313Packages.xstatic-jquery-file-upload
- python314Packages.xstatic-jquery-file-upload
- python313Packages.tree-sitter-grammars.tree-sitter-jq
- python314Packages.tree-sitter-grammars.tree-sitter-jq
- @LeSuisse accepted
- @LeSuisse published on GitHub
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.
References
-
https://github.com/jqlang/jq/security/advisories/GHSA-wwj8-gxm6-jc29 x_refsource_CONFIRM
Affected products
- ==< 0c7d133c3c7e37c00b6d46b658a02244fdd3c784
Matching in nixpkgs
Ignored packages (38)
pkgs.ijq
Interactive wrapper for jq
pkgs.jql
JSON Query Language CLI tool built with Rust
pkgs.jqp
TUI playground to experiment with jq
pkgs.njq
Command-line JSON processor using nix as query language
pkgs.gojq
Pure Go implementation of jq
pkgs.jqfmt
Like gofmt, but for jq
pkgs.jq-lsp
jq language server
pkgs.jquake
Real-time earthquake map of Japan
pkgs.jq-zsh-plugin
Interactively build jq expressions in Zsh
pkgs.python312Packages.jq
None
pkgs.python313Packages.jq
Python bindings for jq, the flexible JSON processor
pkgs.python314Packages.jq
Python bindings for jq, the flexible JSON processor
pkgs.python312Packages.llm-jq
None
pkgs.python313Packages.llm-jq
Write and execute jq programs with the help of LLM
pkgs.python314Packages.llm-jq
Write and execute jq programs with the help of LLM
pkgs.haskellPackages.js-jquery
Obtain minified jQuery code
pkgs.tests.fetchpatch.relative
None
pkgs.python312Packages.xstatic-jquery
None
pkgs.python313Packages.xstatic-jquery
jquery packaged static files for python
pkgs.python314Packages.xstatic-jquery
jquery packaged static files for python
pkgs.python312Packages.django-jquery-js
None
pkgs.python313Packages.django-jquery-js
jQuery, bundled up so apps can depend upon it
pkgs.python314Packages.django-jquery-js
jQuery, bundled up so apps can depend upon it
pkgs.python312Packages.xstatic-jquery-ui
None
pkgs.python313Packages.xstatic-jquery-ui
jquery-ui packaged static files for python
pkgs.python314Packages.xstatic-jquery-ui
jquery-ui packaged static files for python
pkgs.tree-sitter-grammars.tree-sitter-jq
Tree-sitter grammar for jq
-
nixos-unstable 0-unstable-2025-05-10
- nixpkgs-unstable 0-unstable-2025-05-10
- nixos-unstable-small 0-unstable-2025-05-10
pkgs.tests.fetchNextcloudApp.simple-sha512
None
pkgs.vimPlugins.nvim-treesitter-parsers.jq
Tree-sitter grammar for jq
-
nixos-unstable 0.0.0+rev=c204e36
- nixpkgs-unstable 0.0.0+rev=c204e36
- nixos-unstable-small 0.0.0+rev=c204e36
pkgs.python312Packages.sphinxcontrib-jquery
None
pkgs.python313Packages.sphinxcontrib-jquery
Extension to include jQuery on newer Sphinx releases
pkgs.python314Packages.sphinxcontrib-jquery
Extension to include jQuery on newer Sphinx releases
-
nixos-unstable cjqxpb9q4nw2
- nixpkgs-unstable cjqxpb9q4nw2
- nixos-unstable-small cjqxpb9q4nw2
pkgs.python313Packages.xstatic-jquery-file-upload
jquery-file-upload packaged static files for python
pkgs.python314Packages.xstatic-jquery-file-upload
jquery-file-upload packaged static files for python
pkgs.python313Packages.tree-sitter-grammars.tree-sitter-jq
Python bindings for tree-sitter-jq
-
nixos-unstable 0+unstable20250510
- nixpkgs-unstable 0+unstable20250510
- nixos-unstable-small 0+unstable20250510
pkgs.python314Packages.tree-sitter-grammars.tree-sitter-jq
Python bindings for tree-sitter-jq
-
nixos-unstable 0+unstable20250510
- nixpkgs-unstable 0+unstable20250510
- nixos-unstable-small 0+unstable20250510
Package maintainers
-
@7c6f434c Michael Raskin <7c6f434c@mail.ru>
-
@06kellyjac Jack <hello+nixpkgs@j-k.io>
-
@ncfavier Naïm Favier <n@monade.li>
-
@Artturin Artturi N <artturin@artturin.com>