Repository navigation
chore(deps): update dependency shell-quote to v1.11.0 [security] - #1973
renovate[bot] wants to merge 1 commit into
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Review statusThis PR was opened by an automated account. A human maintainer must verify the change intent, provenance, and validation before merging. Current step: Awaiting fresh human maintainer or CODEOWNER approval. Review-state labels are managed by this workflow; do not edit them manually. |
This PR contains the following updates:
1.9.0→1.11.0shell-quote:
quote()command injection via a line terminator in a token after a{ comment }tokenCVE-2026-102422 / GHSA-pqg4-j6r4-53mv
More information
Details
Impact
quote()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 in that later string ends the comment, and the rest of the string is parsed as shell input:Passed to
sh,bash,dash,ksh, orzsh, this runsid.parse()emits a comment token for a#in the middle of a word (for examplehttp://example.com/#frag), so callers that combineparse()output with another untrusted string, such asquote(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.Exploitation requires an attacker-controlled string containing a line terminator that follows a
{ comment }token in the samequote()call.Patches
Fixed in v1.11.0:
quote()throws aTypeErrorwhen a string after a{ comment }token contains a line terminator (\n,\r, U+2028, or U+2029).Workarounds
Drop every token after a
{ comment }token before callingquote(), or reject line terminators in untrusted strings. Separately, do not append other shell text afterquote()output that contains a comment, since the comment swallows it.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
ljharb/shell-quote (shell-quote)
v1.11.0Compare Source
Fixed
quote: drop a replace that can never match in the single-quote branch#15parse: support bash ANSI-C quoting ($'...')#32Commits
quote: reject line terminators in tokens after acomment6002b2eparse: preserve text after special shell parameters81b08a5parse: an escaped backslash does not escape the character after itd708019quote: preserve!in arguments that also contain'ad39927parse: treat$_nameas a variable name, not$_followed by text28f88cdquote: preserve empty glob patterns35c9b97quote: escape~in glob patterns to prevent shell tilde-expansion239d49c@ljharb/eslint-config,auto-changelog,eslint,evalmdb1e406eebfc3083429b0dcache-mode36f2394eslint6de9a41v1.10.0Compare Source
Merged
parse: add opt-insplitUnquotedoption for shell field-splitting of unquoted expansions#1Commits
parse: match nested${...}braces so nested parameter expansion is consumed as one substitutionc0842c8parse: pin single-quote literalness and unmatched-quote handlinga0d03e32116fa3quote: pin conservative escaping of=,@,^,,,:,!(#11)1c36f3fquoteoutputs POSIX quoting, notcmd.exe/PowerShell100e96eparse's supported parameter-expansion subsete1c75cdparse: a backslash inside single quotes must not escape the closing quote5d460a32de86f5quote: pin that a backslash with whitespace is not doubled in single quotes (#14)190e236quote: use output verbatim; do not re-quote it (#11)1b36468parse: fix swappedSINGLE_QUOTE/DOUBLE_QUOTEvariable names801af5c59bbf8b@arethetypeswrong/cli,evalmda04d475@arethetypeswrong/ci,eslintd390f9aquote: the tilde test escapes every~, not just a leading one (#9)617d119Configuration
📅 Schedule: (in timezone America/Los_Angeles)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.