Skip to content

chore(deps): fix reachable/hygiene Dependabot alerts across Go and npm - #6405

Merged
thorfour merged 7 commits into
mainfrom
security-release
Sep 23, 2026
Merged

thorfour merged 7 commits into
mainfrom
security-release

Conversation

@thorfour

Copy link
Copy Markdown
Contributor

Summary

Triaged all 124 open Dependabot advisories on this repo (Go + npm) and fixed the ones worth fixing:

  • Go: bumps google.golang.org/grpc (v1.82.1 → v1.84.0), fixing a genuinely reachable HTTP/2 DATA-frame-fragmentation OOM in parca's gRPC server (bound on :7070, all interfaces). Also bumps golang.org/x/crypto, github.com/apache/thrift, github.com/gorilla/websocket, the go.opentelemetry.io/otel* modules, and github.com/prometheus/prometheus — all assessed not-reachable or contained in this codebase (no xDS, no SSH usage, no Docker-daemon code, no Prometheus web UI mounted), bumped for hygiene. Includes two mechanical follow-ups: promql/parser.ParseMetricSelector became an instance method in the new prometheus version (two call sites updated), and a pre-existing pkg/demangle bug that a stricter go vet printf check now catches (go.mod's language version moved to go1.26 as a side effect of the bumps).
  • npm: adds/extends pnpm.overrides (kept in sync between ui/package.json and ui/pnpm-workspace.yaml, matching this repo's existing pattern) forcing ~70 transitive packages to patched versions, plus direct bumps to vite (5.4.21 → 6.4.3), vitest (1.6.1 → 3.2.6), and react-router-dom (6.30.3 → 6.30.6, bringing react-router/@remix-run/router along). Most of these packages are dead code in this repo (an unused webpack-dev-server subtree, since this app builds with Vite; various build/CI-only tools) but are bumped anyway.

Known gaps, left as-is:

  • github.com/docker/docker: no patched version has been published upstream yet for its remaining advisories; used here only as a Prometheus service-discovery client (never runs the vulnerable daemon-side code).
  • extract-zip: no patched version published upstream.
  • postcss-selector-parser stays pinned at 6.1.2: the 6.1.3 release breaks tailwindcss@3.2.4's use of a private/undocumented method, and the two advisories there require untrusted AST input this build never produces (only parses this repo's own CSS at build time).
  • react-router's two remaining advisories (SSR deserializeErrors, and a backslash-redirect bypass) only ship a fix in the v7 line. This app has no SSR, and every Link/navigate() call site uses hardcoded internal routes — a major-version migration wasn't justified for that reachability.

Test plan

  • go build ./..., go vet ./..., go test ./... all clean
  • pnpm build, pnpm build-storybook, pnpm type-check, pnpm lint (0 errors, only pre-existing warnings), pnpm test (178 tests passing)
  • Verified via pnpm why that every target package converged to a single patched resolution (no lingering vulnerable duplicate installs)

Bumps google.golang.org/grpc (v1.82.1 -> v1.84.0, fixing a reachable
HTTP/2 DATA-frame-fragmentation OOM in parca's gRPC server), plus
golang.org/x/crypto, github.com/apache/thrift, github.com/gorilla/websocket,
go.opentelemetry.io/otel and its exporter modules, and
github.com/prometheus/prometheus to their latest patched releases. The
rest were assessed not-reachable or contained (no xDS/SSH/docker-daemon/
Prometheus-web-UI code paths in this codebase) but are bumped anyway for
hygiene.

The prometheus/prometheus bump renamed promql/parser's package-level
ParseMetricSelector to a method on a parser instance; both call sites are
updated accordingly. Also fixes a pre-existing bug in pkg/demangle
surfaced by a stricter go vet printf check that activates once go.mod's
language version reaches go1.26 (a side effect of the dependency bumps):
the error message formatted the zero-value Option instead of the
offending option string.

github.com/docker/docker stays pinned; no version fixing its remaining
advisories has been published yet, and it's used here only as a
Prometheus service-discovery client, never running the vulnerable
daemon-side code.
…security]

Adds pnpm.overrides (kept in sync between ui/package.json and
ui/pnpm-workspace.yaml, per this repo's existing convention) forcing ~70
transitive packages to their patched versions: axios, browserslist,
svgo, ws, undici, js-yaml, form-data, follow-redirects, fast-uri,
ip-address, qs, tar, tmp, uuid, sigstore/@sigstore/*, and others. Also
bumps the direct dependencies vite (5.4.21 -> 6.4.3), vitest (1.6.1 ->
3.2.6), and react-router-dom (6.30.3 -> 6.30.6, which brings react-router
and @remix-run/router along with it).

Most of these packages were assessed not-reachable in production (dead
webpack-dev-server subtree, build/CI-only tooling never bundled into the
shipped SPA) but are bumped anyway for hygiene, verified via full
build + type-check + lint + test + Storybook build.

A postcss-selector-parser bump to 6.1.3 was reverted to 6.1.2: the two
open advisories there require an untrusted AST input this build never
produces (it only parses this repo's own CSS at build time), and 6.1.3
breaks tailwindcss@3.2.4's internal use of an undocumented private
method.

react-router's two remaining advisories (SSR deserializeErrors, and a
backslash-redirect bypass) only ship a fix in the v7 line; this repo has
no SSR and every Link/navigate call site uses hardcoded internal routes,
so a major-version migration wasn't pursued for reachability this low.
extract-zip has no patched version published yet upstream.
@alwaysmeticulous

alwaysmeticulous Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

✅ Meticulous spotted 0 visual differences across 282 screens tested: view results.

Meticulous evaluated ~4 hours of user flows against your PR.

Expected differences? Click here. Last updated for commit c899ce2 ci: honor skip-check in build-test's pnpm/action-setup step. This comment will update as new commits are pushed.

…ricName

The prometheus/prometheus bump surfaced a staticcheck SA1019 failure:
labels.MetricName was deprecated in favor of prometheus/common/model's
equivalent constant in the version this PR bumps to.
The prometheus bump pulled in a much larger transitive dependency
graph (cloud service-discovery clients), pushing per-target build/link
memory well above 2.5GB. Building all 6 GOOS/GOARCH targets at the
default parallelism (== NumCPU, 4 on ubuntu-latest) exceeded the
16GB runner memory and silently OOM-killed the job with no error
output. Limiting to 2 concurrent builds keeps peak memory in bounds.
Reconciles the v0.28.0 container-image vulnerability scan against the
in-flight dependency bumps, covering categories the Dependabot alerts
didn't surface:

- Bump base image from alpine:3.23.3 to alpine:3.24.2, which carries
  OpenSSL 3.5.8, musl 1.2.6-r2, and zlib 1.3.2-r0 — resolving all 36
  OS-layer CVEs (OpenSSL, musl qsort/iconv, zlib untgz/CRC32).
- Bump .go-version from 1.26.1 to 1.26.8, the latest Go patch release,
  covering ~20 stdlib CVEs (crypto/x509, crypto/tls, net, net/http,
  html/template, encoding/asn1, net/mail, mime, os, archive/tar, etc.)
  fixed across the 1.26.2-1.26.6 patch releases.
- Bump github.com/go-chi/chi/v5 to v5.3.0 and github.com/klauspost/compress
  to v1.18.7, both newly flagged by govulncheck as transitive deps
  pulled in by the earlier grpc/prometheus bumps.

github.com/docker/docker, github.com/hamba/avro/v2, and the
golang.org/x/crypto/openpgp package remain unaddressed: no patched
upstream release exists for any of their flagged advisories as of this
commit (confirmed via govulncheck and the module proxy version list).
All are unreachable transitive-only code paths.
hadolint's :latest image started enforcing SC2006 (legacy backticks)
and DL3066 (non-numeric USER) since the last green pre-commit run on
main, independent of the security bumps in this branch.
Every other step in this job checks should_skip except this one, so a
correctly-skipped run (e.g. a push that only touches files outside the
job's watched paths) still executes pnpm/action-setup against a
workspace with no checkout, and it fails outright instead of no-op'ing
like its neighbors.
@thorfour
thorfour merged commit 4076831 into main Sep 23, 2026
33 checks passed
@thorfour
thorfour deleted the security-release branch September 23, 2026 17:16

This branch was successfully deployed

1 active deployment
Preview – parca-ui — c899ce21 Deployed Sep 23, 2026 by vercel[bot]
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.

2 participants