CVE-2026-102422

Source
https://cve.org/CVERecord?id=CVE-2026-102422
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-102422.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-102422
Aliases
  • GHSA-pqg4-j6r4-53mv
Downstream
Published
2026-09-29T03:47:36Z
Modified
2026-09-30T03:45:49Z
Severity
  • 9.2 (Critical) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
shell-quote `quote()` command injection via a line terminator in a token after a `{ comment }` token
Details

shell-quote's quote() function emits a { comment } token as # followed by its text, which comments out the rest of the shell line, including the opening quote of any later string token. A line terminator (\n, \r, U+2028, U+2029) in that later string therefore ends the comment, and the rest of the string is parsed as shell input: quote(['echo', 'ok', { comment: 'x' }, 'a\nid;#']) runs id in sh, bash, dash, ksh and zsh. parse() emits a comment token for a # in the middle of a word (for example http://example.com/#frag), so callers that combine parse() output with another untrusted string, such as quote(parse(untrustedCommand).concat(untrustedArg)), are affected. The fix for CVE-2026-9277 rejected line terminators in the comment's own text, but not in the tokens after it. Fixed in 1.11.0: quote() throws a TypeError when a string after a { comment } token contains a line terminator.

Database specific
{
    "cna_assigner":  "harborist",
    "cwe_ids":  [
        "CWE-78"
    ],
    "osv_generated_from":  "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/102xxx/CVE-2026-102422.json",
    "unresolved_ranges":  [
        {
            "extracted_events":  [
                {
                    "introduced":  "1.8.4"
                },
                {
                    "fixed":  "1.11.0"
                }
            ],
            "source":  "AFFECTED_FIELD"
        }
    ]
}
References

Affected packages

Git / github.com/ljharb/shell-quote

Affected ranges

Type
GIT
Repo
https://github.com/ljharb/shell-quote
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Database specific
Show details
{
    "source":  "REFERENCES"
}

Affected versions

v0.*
v0.0.0
v0.0.1
v0.1.0
v0.1.1
v1.*
v1.0.0
v1.1.0
v1.10.0
v1.2.0
v1.3.0
v1.3.1
v1.3.2
v1.3.3
v1.4.0
v1.4.1
v1.4.2
v1.4.3
v1.5.0
v1.6.0
v1.6.1
v1.6.2
v1.6.3
v1.7.0
v1.7.1
v1.7.2
v1.7.3
v1.7.4
v1.8.0
v1.8.1
v1.8.2
v1.8.3
v1.8.4
v1.9.0

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-102422.json"