Skip to content

Override vulnerable shell-quote#620

Merged
bgentry merged 1 commit into
masterfrom
bg/fix-shell-quote-alert
Jul 22, 2026
Merged

Override vulnerable shell-quote#620
bgentry merged 1 commit into
masterfrom
bg/fix-shell-quote-alert

Conversation

@bgentry

@bgentry bgentry commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Dependabot cannot resolve the high-severity
shell-quote advisory because concurrently@10.0.3 pins vulnerable
shell-quote@1.8.4; its only automatic path would downgrade
concurrently.

This adds a root override for the compatible patched release line, which
resolves shell-quote@1.10.0 without changing concurrently. The lockfile
changes only that package's version, registry URL, and SHA-512 integrity.

The published artifacts and upstream source were reviewed before executing
project code. The patched package retains the same maintainers, publisher,
repository, signing key, license, and runtime surface, with no install hooks,
bins, native code, network access, or process execution.

Dependabot cannot resolve GHSA-395f-4hp3-45gv because
`concurrently@10.0.3` pins vulnerable `shell-quote@1.8.4`, and the
bot's only automatic path would downgrade `concurrently`.

Override the transitive dependency with the compatible patched release
line. This resolves `shell-quote@1.10.0` while keeping `concurrently`
unchanged and limits lockfile churn to that one package.

@bgentry bgentry left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Codex review: Security and compatibility review looks good to me.

Reviewed head: 94fbf22f5a0ceb32deadd6013a03577f789f5f13

Security and supply-chain scope

  • Compared the published shell-quote 1.8.4, 1.9.0, and 1.10.0
    artifacts and upstream source. Registry SHA-512 values match the
    lockfile/npm metadata, and maintainer, publisher, repository, signing key,
    license, and Node engine remain stable.
  • Verified the signed fix for GHSA-395f-4hp3-45gv replaces both quadratic
    parse() reducers with linear append operations. Version 1.10.0 retains
    that fix; its additional parser changes are reviewed, verified upstream
    commits with no unexpected expansion of trust.
  • Found no new install/build hooks, bins, dependencies, native/WASM payloads,
    network or telemetry code, credential/environment access, filesystem
    writes, process spawning, dynamic evaluation, or obfuscation.
  • Structurally checked the manifest and lockfile diff. The override changes
    exactly one locked package from 1.8.4 to 1.10.0, with no added/removed
    packages, lifecycle hooks, bins, native packages, non-registry URLs,
    non-SHA-512 integrity, or same-version checksum rewrites.

Compatibility and reachability

  • This is a development-only transitive dependency through
    concurrently@10.0.3. River's path imports quote(), not the advisory's
    vulnerable parse() function; reviewed quote() changes are compatible
    with concurrently's placeholder handling.
  • A clean lifecycle-disabled install resolves concurrently@10.0.3 to
    shell-quote@1.10.0 as intended.
  • Self-verification passed: 205 tests, lint, production build, Storybook
    build, installed dependency-tree check, concurrently CLI and placeholder
    argument-quoting smoke checks, and a 64,000-token parser regression check
    completing in 16 ms.

Residual risk and verdict

The override is intentionally necessary until concurrently relaxes its
exact shell-quote@1.8.4 pin; it should be removed once upstream publishes a
compatible dependency range. I found no blocking security or compatibility
issue in this remediation.

@bgentry
bgentry merged commit 777f6a1 into master Jul 22, 2026
21 checks passed
@bgentry
bgentry deleted the bg/fix-shell-quote-alert branch July 22, 2026 02:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant