Skip to content

chore(security): Track 2 moderate npm audit vulnerabilities (next/postcss) — no safe upgrade path #1060

@ericsocrat

Description

@ericsocrat

Problem Statement

npm audit in frontend/ reports 4 moderate transitive vulnerabilities with no safe upgrade path on the current dependency tree:

Vuln Path Notes
postcss (next dev tree) node_modules/next/node_modules/postcss Auto-fix would downgrade next to 9.3.3 — breaking, unacceptable (currently 16.1.6). Fix must come from upstream Next.js bumping its bundled postcss.
uuid <14.0.0 (advisory GHSA-w5hq-g745-h8pq, missing buffer bounds check in v3/v5/v6) node_modules/@lhci/cli/node_modules/uuid Auto-fix downgrades @lhci/cli to 0.6.1 — breaking, unacceptable (project relies on current LHCI for Lighthouse CI). Fix must come from upstream LHCI bumping its bundled uuid.

Both are dev-only / build-chain dependencies — no production runtime exposure. Severity is moderate. Risk is low but not zero (e.g., compromised CI machine).

Why this is a tracking issue, not an immediate fix

Per npm audit fix --force, Node would install:

  • next@9.3.3 (15 major versions back, security CVEs in older Next, breaking compatibility with React 18+, app router, middleware, etc.)
  • @lhci/cli@0.6.1 (incompatible with current Lighthouse CI workflow, would break bundle-size.yml and quality-gate.yml)

Neither downgrade is acceptable. The fix must come from upstream releasing patch versions that re-bundle non-vulnerable transitives.

Acceptance criteria (for closure)

  • npm audit --audit-level=moderate reports 0 moderate, 0 high, 0 critical in frontend/.
    • Resolution path 1: Next.js releases a patch version with non-vulnerable postcss → bump in framework Dependabot group.
    • Resolution path 2: LHCI releases a non-breaking version with non-vulnerable uuid → bump via Dependabot.

Monitoring plan

  • Subscribe to upstream advisories: GitHub Security Advisories for next and @lhci/cli.
  • Re-run npm audit weekly via existing dependency-audit.yml workflow (already runs).
  • If a CVE for these transitives is upgraded to high, escalate to P1 and consider npm-force-resolutions or temporary overrides block (see tmp@>=0.2.4 precedent in PR security(deps): force tmp>=0.2.4 via overrides to close CVE-2025-54798 #1030).

Priority

P3 — moderate severity, dev-only, no safe fix path. Monitor only.

Related precedent

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low: nice-to-have, backlogdependenciesDependency updates (Dependabot)securitySecurity / auth / compliancestatus:blockedBlocked by external dependency

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions