CVE-2026-43895

jq: Embedded NUL in jq import paths causes local redaction-policy bypass and preserves sensitive fields in published artifacts

Published May 11, 2026 CVSS 3.1 · 4.4 Medium EPSS < 1% KEV · Not listed
Description
jq is a command-line JSON processor. In 1.8.1 and earlier, jq accepts embedded NUL bytes in import paths at the jq-language level, but later resolves those paths through C string operations during module and data-file lookup. This creates a mismatch between the logical import string that policy or audit code may validate and the on-disk path that jq actually opens.

Analysis

AI-generated

Technical impact

jq processes JSON through user supplied import paths. In releases 1.8.1 and earlier, the jq language accepts embedded NUL bytes in these paths, but when the runtime resolves the paths it uses C string operations that truncate at the first NUL. This creates a mismatch between the logical path that policy or audit code may validate and the actual on‑disk path that jq opens. As a result, a locally executing actor can include a NUL byte in an import path to force jq to open a different file than the one the policy permits, thereby bypassing redaction rules and preserving sensitive fields in any artifacts produced by the command.

Affected Systems

The vulnerability is present in the jq JSON processor from the jqlang:jq project. Versions 1.8.1 and all earlier releases are affected; a newer release that corrects the NUL handling is required.

Risk and Exploitability

With a CVSS score of 4.4 the vulnerability is considered moderate. The EPSS score is not available and the issue is not listed in the CISA KEV catalog, but it can be exploited locally by constructing a jq command or script that contains an embedded NUL byte in an import path. The attacker must have the ability to run jq on the target system; no network‑based trigger is described, so the attack surface is confined to local execution or automated build pipelines that invoke jq.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade jq to version 1.8.2 or later.
  • Ensure that any jq scripts or command‑line invocations do not contain NUL characters in import paths.
  • If an immediate upgrade is impossible, implement a sanitization check that rejects import paths containing NUL bytes before jq is executed.

Generated by OpenCVE AI on May 11, 2026 at 19:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4599-1 jq security update
Debian DLA Debian DLA DLA-4662-1 jq security update
Debian DSA Debian DSA DSA-6416-1 jq security update
History
Type Values Removed Values Added
CPEs cpe:2.3:a:jqlang:jq:*:*:*:*:*:*:*:*
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Jqlang
Jqlang jq
Vendors & Products Jqlang
Jqlang jq
Type Values Removed Values Added
Description jq is a command-line JSON processor. In 1.8.1 and earlier, jq accepts embedded NUL bytes in import paths at the jq-language level, but later resolves those paths through C string operations during module and data-file lookup. This creates a mismatch between the logical import string that policy or audit code may validate and the on-disk path that jq actually opens.
Title jq: Embedded NUL in jq import paths causes local redaction-policy bypass and preserves sensitive fields in published artifacts
Weaknesses CWE-158
CWE-20
References
Metrics cvssV3_1

{'score': 4.4, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N'}

Weaknesses
  • CWE-158

    Improper Neutralization of Null Byte or NUL Character

  • CWE-20

    Improper Input Validation

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
May 13, 2026, 2:41 PM
Reserved
May 4, 2026, 3:17 PM
Status
Analyzed
Published
May 11, 2026, 6:16 PM
Modified
Oct 26, 2026, 6:10 PM
Severity
Moderate
Public date
May 11, 2026, 5:24 PM