Uh oh!
There was an error while loading. Please reload this page.
fix(deps): pin ws to ^8.20.1 (clear GHSA-58qx-3vcg-4xpx) — ops-i4ai - #297
Conversation
bun audit was flagging ws <8.20.1 with moderate severity (uninitialized
memory disclosure). The vulnerable versions reached us three ways:
- workspace:@tpsdev-ai/cli direct
- ink › ws (8.19.0)
- react-devtools-core › ws (7.5.10)
Added overrides: { ws: ^8.20.1 } to force the resolution across all
transitive dependents. bun audit now reports no vulnerabilities.
CI 'Dependency Audit' has been failing on main since #291 merged
(2026-05-18); K&S noted but did not block PRs on this pre-existing
issue. This unblocks the audit gate for future PRs.
bun audit: clean.
21/21 mail tests still pass (no behavior change).
tps-kern
left a comment
There was a problem hiding this comment.
Architecture review: ws pin to ^8.20.1 (ops-i4ai).
APPROVE. Clean supply-chain fix.
Architecture
Root package.json overrides is the correct placement for a workspace monorepo. ws is a single binary library — one version end-to-end is the right posture. No per-package resolution needed.
ws 8.20.1 is a patch-level bump from the 8.19.0 that ink was pulling. ws maintains semver — the API surface is unchanged. No runtime risk for the ink path.
react-devtools-core pinned ws@7.5.10 (a v7 line), and the override forces it to 8.20.1. This is a major-version jump for that dependency tree, but react-devtools-core is a dev tool used at build/inspect time, not a runtime dependency. Bun audit listed 7.5.10 even though it is outside the advisory range — normalizing to the latest safe version is better than having multiple ws copies in the tree.
Security
8.20.1 is the upstream fix release for GHSA-58qx-3vcg-4xpx. No prior compromise concerns in the 8.19.0-8.20.0 range — the advisory was reported and patched in the same release cycle. Supply chain risk is standard for any dep bump, but ws is a well-maintained ecosystem package.
The dropped 7.5.10 entry was not an attack vector — it was outside the advisory range. Dropping it is net positive by eliminating a nested resolution the audit tool flagged.
bun audit is clean. 21/21 mail tests still pass. No behavior change. Ship it.
tps-sherlock
left a comment
There was a problem hiding this comment.
Sherlock security review — APPROVE.
Clean supply-chain patch. Standard pattern.
Override scope: workspace-wide is correct. ws is a single binary library consumed transitively by ink and react-devtools-core. Pinning one patched version across the entire workspace prevents any package from pulling in a vulnerable release. A per-package resolution would not cover the transitive dependency path that brought in ws@7.5.10.
8.20.1 is the correct fix release. GHSA-58qx-3vcg-4xpx affected ws 8.18.0 through 8.20.0. 8.20.1 patches the uninitialized memory disclosure. No additional compromise concerns in the 8.19.0 - 8.20.0 range beyond this advisory.
The dropped 7.5.10 entry was a nested resolution from react-devtools-core. Version 7.x was outside this advisory's affected range but is EOL. Normalizing on one current version (8.20.1) is cleaner and safer regardless.
Root package.json placement is correct for a workspace. The overrides field at root applies to the entire tree. bun.lock reflects the single resolution.
No runtime risk from semver-compatible upgrade. ws@8.20.1 is a bug-fix release; API surface unchanged. Peer deps (bufferutil, utf-8-validate) remain optional. Ship it.
Uh oh!
There was an error while loading. Please reload this page.
Summary
Pin
wsto^8.20.1via rootoverridesfield to clearGHSA-58qx-3vcg-4xpx(moderate: uninitialized memory disclosure). The vulnerability has been blocking the CIDependency Auditcheck on main since #291 merged.Why
bun auditflaggedws <8.20.1reaching us three ways:workspace:@tpsdev-ai/clidirect dependencyink › ws(was 8.19.0)react-devtools-core › ws(was 7.5.10)Direct dep bump alone wasn't enough — transitive consumers still pinned the vulnerable version. The
overridesfield forces a single resolution across all dependents.Verification
bun audit— no vulnerabilities found (previously: 1 moderate).bun pm lsconfirmsws@8.20.1at workspace root.bun.lockdiff drops the nestedreact-devtools-core/ws@7.5.10entry — now resolves to the top-level 8.20.1.Test plan
bun auditclean locallybun test packages/cli/test/mail.test.tspassesDependency Auditturns green (currently failing on main)ops-i4ai
🤖 Generated with Claude Code