Skip to content

fix(deps): bump undici → 7.28.0 / 8.5.0 and dompurify → 3.4.11 (osv-scan)#554

Merged
clemenshelm merged 1 commit into
mainfrom
fix/osv-undici-dompurify
Jun 19, 2026
Merged

fix(deps): bump undici → 7.28.0 / 8.5.0 and dompurify → 3.4.11 (osv-scan)#554
clemenshelm merged 1 commit into
mainfrom
fix/osv-undici-dompurify

Conversation

@clemenshelm

Copy link
Copy Markdown
Contributor

Why

Fresh OSV advisories reddened Security audit / osv-scan on main and every open PR without any code change — the classic fresh-advisory pattern (cf. PR #505). This is the focused dep-bump so main goes green and open PRs only need a rebase. Not bundled into any feature PR.

Vulnerabilities (all production-reachable)

Package Version Advisory CVSS Fixed
undici 8.3.0 GHSA-38rv-x7px-6hhq 7.5 8.5.0
undici 8.3.0 GHSA-pr7r-676h-xcf6 5.9 8.5.0
undici 8.3.0 GHSA-vmh5-mc38-953g 7.4 8.5.0
undici 7.25.0 GHSA-pr7r-676h-xcf6 5.9 7.28.0
undici 7.25.0 GHSA-vmh5-mc38-953g 7.4 7.28.0
dompurify 3.4.10 GHSA-cmwh-pvxp-8882 5.1 3.4.11
  • undici@8.3.0 is a direct production dependency of the pinchy-web plugin (web fetch) — ships in the image.
  • undici@7.25.0 comes from the jsdom/vitest test toolchain.
  • dompurify@3.4.10 comes via mermaid in the docs site (docs.heypinchy.com).

None qualify for osv-scanner.toml IgnoredVulns (those are reserved for openclaw-only test-tool transitive devDeps).

How

Via pnpm.overrides (the established repo pattern):

  • root undici@>=7.0.0 <7.28.0>=7.28.0 <8
  • root undici@>=8.0.0 <8.5.0>=8.5.0 (new)
  • docs dompurify@<3.4.6<3.4.11

The <8 upper bound on the 7.x override is load-bearing. jsdom@29.1.1 imports the undici-internal path undici/lib/handler/wrap-handler.js, which exists in 7.x but was removed in 8.x. Without the bound, pnpm deduped jsdom's undici up to 8.5.0 and every jsdom-env test crashed with Cannot find module 'undici/lib/handler/wrap-handler.js' (448 unhandled errors). Pinning to the 7.x line keeps jsdom working while still clearing the advisory.

Lockfile now resolves undici 7.28.0 (test tooling) + 8.5.0 (prod) + dompurify 3.4.11 — two undici majors, same shape as before the bump.

Test plan

  • pnpm -C packages/web test — green (6194 passed, 0 errors; the jsdom MODULE_NOT_FOUND regression introduced by a naive bump is gone)
  • cd docs && pnpm build — clean
  • Lockfiles contain no undici < 7.28.0 / < 8.5.0 and no dompurify < 3.4.11
  • CI osv-scan green

Follow-up

Open PRs (#552, #517, #553, …) rebase on the new main to pick this up.

…can)

Fresh OSV advisories reddened osv-scan on main and every open PR without
any code change — the classic fresh-advisory pattern. Focused dep-bump
so main goes green and open PRs only need a rebase.

Vulnerabilities (all production-reachable, not test-only devDeps):

* undici@8.3.0 — direct prod dep of the pinchy-web plugin (web fetch),
  ships in the image. GHSA-38rv-x7px-6hhq (7.5), GHSA-pr7r-676h-xcf6
  (5.9), GHSA-vmh5-mc38-953g (7.4). Fixed in 8.5.0.
* undici@7.25.0 — pulled by the jsdom/vitest test toolchain.
  GHSA-pr7r-676h-xcf6, GHSA-vmh5-mc38-953g. Fixed in 7.28.0.
* dompurify@3.4.10 — via mermaid in the docs site (docs.heypinchy.com).
  GHSA-cmwh-pvxp-8882 (5.1). Fixed in 3.4.11.

Done via `pnpm.overrides` (the established pattern in this repo):

* `undici@>=7.0.0 <7.28.0` → `>=7.28.0 <8`. The `<8` upper bound is
  load-bearing: jsdom@29.1.1 imports the undici-internal
  `undici/lib/handler/wrap-handler.js`, which exists in 7.x but was
  removed in 8.x. Without the bound, pnpm deduped jsdom's undici up to
  8.5.0 and every jsdom-env test crashed with MODULE_NOT_FOUND. Pinning
  to the 7.x line keeps jsdom working while still clearing the advisory.
* `undici@>=8.0.0 <8.5.0` → `>=8.5.0` for the pinchy-web 8.x line.
* docs `dompurify@<3.4.6` → `<3.4.11`.

Lockfile now resolves undici 7.28.0 (test tooling) + 8.5.0 (prod) and
dompurify 3.4.11 — two undici majors, same as before the bump.

Verified: `pnpm -C packages/web test` green (6194 passed, 0 errors —
the jsdom MODULE_NOT_FOUND regression is gone), `cd docs && pnpm build`
clean.
@clemenshelm clemenshelm merged commit 2d8199d into main Jun 19, 2026
21 checks passed
@clemenshelm clemenshelm deleted the fix/osv-undici-dompurify branch June 19, 2026 06:17
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.

1 participant