Skip to main content

jq CVE-2026-41256

| EUVDEUVD-2026-29162 MEDIUM
Improper Neutralization of Null Byte or NUL Character (CWE-158)
2026-05-11 GitHub_M
5.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker crafts filter file with NUL byte
  2. Delivery
    Places file in accessible location
  3. Exploit
    User/script executes jq -f with file
  4. Execution
    Parser truncates at NUL
  5. Persist
    Malicious suffix never compiled
  6. Impact
    Silent failure obscures attack

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Metacharacter neutralization
Exploitation Conditions

Exploitation requires that a user explicitly invoke jq with the -f flag pointing to a filter file containing an embedded NUL byte. The attacker must be able to supply or place the crafted filter file on the target system in a location where the user or a script will execute it. Default jq behavior (reading filters from command-line arguments or stdin) does not trigger this vulnerability; the -f flag and file-based filter loading are necessary. The vulnerability does not affect filter programs passed directly as command-line arguments or piped to stdin, only those loaded from disk files via -f. No authentication is required, but user interaction is mandatory: someone must actively run the jq command with the malicious file. Systems using jq in automated pipelines with externally-sourced filter files, or interactive users who accept filter files from peers, are at heightened risk.

Impact

CVSS 5.5 (AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N) indicates local attack vector with low complexity and user interaction (opening a crafted filter file), resulting in high integrity impact but no confidentiality or availability loss. The local attack vector limits exposure to users who directly execute jq with untrusted filter files. However, the high integrity impact is significant: an attacker controlling the filter file can silently modify JSON transformations or inject logic that appears absent, potentially corrupting data pipelines or causing undetected data modification. The requirement for user interaction (UI:R) means this is not wormable; a user must explicitly run jq -f with an attacker-supplied file. No exploitation probability data (EPSS) or active exploitation status (KEV) provided, suggesting this is a recently discovered or low-visibility issue. The regression nature (breaking a prior fix) elevates concern for already-patched deployments. Real-world risk depends on whether jq is used in scripts that accept filter files from untrusted sources or whether security controls validate filter file integrity before execution.

Exploit ScenarioDerived

An attacker crafts a malicious jq filter file named exploit.jq containing '. \x00 | input | del(.password)' where the first dot (.) is the intended legitimate filter but the second command (del(.password)) is hidden after the NUL byte. A user or administrator runs 'jq -f exploit.jq data.json' believing the filter will pass through JSON unchanged. The NUL byte causes jq to truncate and compile only the leading '.', appearing to process the file correctly, while the actual malicious code after the NUL is never executed, leaving the attacker's payload undetected within the file system.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 11, 2026

Jq 1.8.1 and earlier truncate filter files at the first embedded NUL byte when loaded with -f, causing only the prefix before the NUL to execute. A crafted filter file containing a NUL byte and arbitrary suffix allows an attacker to inject malicious code that compiles and runs silently, bypassing intended filter logic and potentially modifying JSON output in undetected ways. This represents a post-CVE-2026-33948 regression on the compilation path.

RemediationAI

Upgrade to a patched version of jq released after 1.8.1 once available from the jqlang project. Until a patch is released, implement compensating controls: validate filter files before execution by ensuring they do not contain embedded NUL bytes (scan incoming filter files with hex editors or custom scripts to reject or sanitize files containing \x00 sequences), restrict -f flag usage to administrator-controlled filter files stored in protected directories with strict file permissions, and avoid executing jq -f with filter files sourced from untrusted inputs or user-supplied sources. If jq is used in automated pipelines, implement a pre-execution filter file integrity check that rejects any file containing NUL bytes. Consult the GitHub security advisory at https://github.com/jqlang/jq/security/advisories/GHSA-vf2h-chrj-q3fg for patch availability and timeline.

Affected VersionsENISA

jq ≤ 1.8.1

Affected Packages

euvd jq no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Jq is a command-line JSON processor that accepts filter programs via -f flag to read from files. The vulnerability stems from improper NUL byte handling during file parsing on the compilation path. CWE-158 (Improper Neutralization of Null Byte or NUL Character) indicates the root cause: the filter file parser does not correctly handle embedded NUL bytes that truncate the filter string. The JSON parser path was previously fixed in CVE-2026-33948, but the compilation path retained the vulnerability. When a filter file is read, the code encounters a NUL byte mid-file and treats it as a string terminator, causing the remainder of the file to be silently ignored. This creates a semantic mismatch: the compiled program executes the truncated filter while subsequent content in the file is never processed.

Know when Jq gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.5 MEDIUM
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
SUSE MEDIUM
Red Hat 5.5 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

DescriptionCVE.org

jq is a command-line JSON processor. In 1.8.1 and earlier, Top-level jq programs loaded from a file with -f are truncated at the first embedded NUL byte on current upstream HEAD. A crafted filter file such as . followed by \x00 and arbitrary suffix compiles and executes as only the prefix before the NUL. This leaves jq with a post-CVE-2026-33948 prefix/full-buffer mismatch on the compilation path even though the JSON parser path has already been fixed.

Threat Intelligence Overview

EPSS Score
0.0%
Top 98% exploitable
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Jq

View all
CVE-2024-53427 HIGH POC
8.1 Feb 26

decNumberCopy in decNumber.c in jq through 1.7.1 does not properly consider that NaN is interpreted as numeric, which ha

CVE-2015-8863 CRITICAL
9.8 May 06

Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (cras

CVE-2025-48060 HIGH POC
7.7 May 21

jq is a command-line JSON processor. Rated high severity (CVSS 7.7), this vulnerability is remotely exploitable, no auth

CVE-2016-4074 HIGH POC
7.5 May 06

The jv_dump_term function in jq 1.5 allows remote attackers to cause a denial of service (stack consumption and applicat

CVE-2023-49355 HIGH POC
7.5 Dec 11

decToString in decNumber/decNumber.c in jq 88f01a7 has a one-byte out-of-bounds write via the " []-1.2e-1111111111" inpu

CVE-2023-50268 MEDIUM POC
5.5 Dec 13

jq is a command-line JSON processor. Rated medium severity (CVSS 5.5), this vulnerability is low attack complexity. Publ

CVE-2023-50246 MEDIUM POC
5.5 Dec 13

jq is a command-line JSON processor. Rated medium severity (CVSS 5.5), this vulnerability is low attack complexity. Publ

CVE-2026-32316 HIGH
7.5 Apr 13

A heap-based buffer overflow in jqlang/jq through version 1.8.1 allows remote, unauthenticated attackers to crash - and

CVE-2026-49839 HIGH
7.1

Out-of-bounds write in the jq command-line JSON processor (CWE-787) lets a crafted JSON input corrupt memory when parsed

CVE-2026-54679 MEDIUM
6.9

jq, the command-line JSON processor, was patched in Alpine Linux with package version 1.8.2-r0. The specific vulnerabili

CVE-2026-39979 MEDIUM
6.9 Apr 13

Out-of-bounds read in libjq's jv_parse_sized() API exposes any embedding application to memory disclosure or process ter

CVE-2026-47770 MEDIUM
6.8

jq on Alpine Linux was patched in package version 1.8.2-r0, addressing an unspecified vulnerability. The nature of the f

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
SLES15-SP5-CHOST-BYOS-SAP-CCloud Fixed
SLES15-SP6-CHOST-BYOS Fixed
SLES15-SP6-CHOST-BYOS-Aliyun Fixed
SLES15-SP6-CHOST-BYOS-Azure Fixed
SLES15-SP6-CHOST-BYOS-EC2 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy