Skip to content

[P2.35] Decide the four remaining web-ui advisories, then raise the deploy audit gate above critical #1131

Description

@frankbria

Split out of #1124 / PR for the next 16.3 security upgrade. Priority P2.35 — severity medium, category security.

Problem

Two coupled loose ends that #1124 deliberately did not resolve, because fixing either one alone makes things worse.

1. Four advisories remain after #1124, none covered by a Dependabot PR

With next at 16.3.0, npm audit in web-ui reports:

Package Severity Advisory
brace-expansion high GHSA-3jxr-9vmj-r5cp, GHSA-mh99-v99m-4gvg, GHSA-rgw5-rvv9-x895 (DoS)
js-yaml high GHSA-h67p-54hq-rp68, GHSA-52cp-r559-cp3m, GHSA-5p4m-2wfm-xmqj (DoS)
nanoid high GHSA-2v37-7h3g-55p8
@babel/core low GHSA-4x5r-pxfx-6jf8 (arbitrary file read)

All are dev/build-time dependencies, which is why they have been accumulating quietly. That is a reason to make a deliberate decision, not a reason to ignore them: build-time code still runs on CI runners with repo credentials in scope.

2. The deploy gate cannot see any of them

deploy.yml runs npm audit --audit-level=critical. Nothing below critical blocks a deploy, which is exactly how six high-severity findings accumulated unnoticed before #1124.

Why these have to move together

Raising the threshold to --audit-level=high today would immediately block every deploy on the three highs above. So the sequence is: decide on the four findings first, then raise the gate. Doing it in the other order breaks deploys; doing only the first half leaves the gate blind again the next time something lands.

Acceptance criteria

  • An explicit accept-or-fix decision on each of the four, recorded somewhere durable (not just a PR comment)
  • For any accepted: an allowlist entry with a reason and a review date, rather than a silent pass
  • deploy.yml raised from --audit-level=critical to --audit-level=high once the above is clean
  • Verify a deploy still succeeds with the raised threshold

Note

#1124 also surfaced that Dependabot closed a security PR (#1087) as "updatable in another way" and replaced it with #1123, which bumped only top-level postcss and did not touch the nested next/node_modules/postcss that carried the actual advisories. Worth keeping in mind here: an open Dependabot PR is not evidence that a class of advisory is being handled.

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugSomething is broken and needs fixing

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions