You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Surfaced while vetting dependabot #418 (postcss 8.5.15 -> 8.5.23 in plugins/ca-sandbox/tools).
The blind spot
That bump cleared GHSA-r28c-9q8g-f849 — PostCSS: Path Traversal in Previous Source Map Auto-Loading (sourceMappingURL) leads to Arbitrary .map File Disclosure, severity HIGH.
No repo gate saw it. tech-stack.md configures npm audit --omit=dev --audit-level=critical, which reported 0 vulnerabilities against both the vulnerable 8.5.15 lockfile and the fixed 8.5.23 one. Two independent reasons it was invisible:
--omit=dev — postcss is a devDependency there.
--audit-level=critical — the advisory is HIGH, below the threshold.
The only reason it surfaced at all is that dependabot happened to file the bump. That is luck, not a control.
This is the same class of gap #421 just closed for site/, and #403/#432 are tightening for the docs pipeline — but plugins/*/tools dev trees remain uncovered.
Why dev-only still matters here
These are not idle dev deps. plugins/ca-sandbox/tools builds sandbox.js, the driver that clones untrusted repositories into containers; plugins/ca/tools builds farm.js, the dispatcher that executes model-authored work. A build-time compromise in either lands in a committed, shipped esbuild artifact. "Dev dependency" understates the blast radius when the dev dependency's output is the product.
Suggested direction
Extend the audit sweep to the plugins/*/tools dev trees, not just production deps.
Surfaced while vetting dependabot #418 (postcss 8.5.15 -> 8.5.23 in
plugins/ca-sandbox/tools).The blind spot
That bump cleared GHSA-r28c-9q8g-f849 — PostCSS: Path Traversal in Previous Source Map Auto-Loading (sourceMappingURL) leads to Arbitrary .map File Disclosure, severity HIGH.
No repo gate saw it.
tech-stack.mdconfiguresnpm audit --omit=dev --audit-level=critical, which reported 0 vulnerabilities against both the vulnerable 8.5.15 lockfile and the fixed 8.5.23 one. Two independent reasons it was invisible:--omit=dev— postcss is a devDependency there.--audit-level=critical— the advisory is HIGH, below the threshold.The only reason it surfaced at all is that dependabot happened to file the bump. That is luck, not a control.
This is the same class of gap #421 just closed for
site/, and #403/#432 are tightening for the docs pipeline — butplugins/*/toolsdev trees remain uncovered.Why dev-only still matters here
These are not idle dev deps.
plugins/ca-sandbox/toolsbuildssandbox.js, the driver that clones untrusted repositories into containers;plugins/ca/toolsbuildsfarm.js, the dispatcher that executes model-authored work. A build-time compromise in either lands in a committed, shipped esbuild artifact. "Dev dependency" understates the blast radius when the dev dependency's output is the product.Suggested direction
plugins/*/toolsdev trees, not just production deps.--audit-level=criticalis now inconsistent with thehighgate fix(ci): add a pinned secret scan, gate the site deps, reach the parity fixture #432 introduces for the site. Pick one policy and state it intech-stack.md.tech-stack.md— it currently documents thecriticalsetting as the standard.Acceptance criteria
plugins/*/toolsdev dependency fails CI.tech-stack.mdmatches what CI actually runs.