Security vulnerabilities (fix first)
| CVE/GHSA |
package |
severity |
current |
fixed in |
description |
| GHSA-r28c-9q8g-f849 |
postcss |
high |
8.5.14 |
8.5.18 |
Path traversal in previous source-map auto-loading (sourceMappingURL) can disclose arbitrary .map files. Pulled in transitively via vitepress -> vite/@vue/compiler-sfc; build-time only (vitepress build), not shipped to the site's runtime bundle. |
| GHSA-c2j3-45gr-mqc4 |
dompurify |
low |
3.4.11 |
3.4.12 |
CUSTOM_ELEMENT_HANDLING bypasses afterSanitizeElements for allowed custom elements. Pulled in via mermaid (a runtime dependencies entry) and ships in the client bundle that renders diagrams in visitors' browsers. |
Both are currently held below their patched versions by the overrides block in package.json:
"overrides": {
"esbuild": "^0.25.0",
"vite": "^6.4.3",
"dompurify": ">=3.4.11"
}
dompurify needs its floor raised to >=3.4.12. postcss isn't overridden at all yet and resolves to 8.5.14 transitively; add a postcss override (or a nested override under vitepress) pinned to >=8.5.18.
npm outdated reports no drift beyond this — every direct dependency is already at the newest version satisfying its declared range, so this is a pure security-floor issue, not routine version bumping.
Outdated packages
Clean — npm outdated --json returned no results. No minor/major bumps pending.
Worker instructions
- Fix the CVEs above in severity order:
postcss (high, build-tooling-only impact but trivial to fix) then dompurify (low, but shipped to the runtime/browser bundle via mermaid).
- Raise the
dompurify override floor to >=3.4.12 and add a postcss override pinned to >=8.5.18, then regenerate the lockfile with plain npm install (see CLAUDE.md: never use --legacy-peer-deps here, it drops the optional search-insights peer and breaks the strict npm ci used in CI's Dockerfile).
- There are no other outdated minor/patch/major bumps pending right now, so no further version evaluation is needed this round.
- Build and verify:
rm -rf node_modules && npm ci && npm run docs:build (matches the Docker build CI runs). This repo has no automated test suite beyond the build itself — note that in the PR description.
- Confirm
npm audit is clean after the change.
- Open a draft PR closing this issue, watch CI, and run
gh pr ready once it's green.
Security vulnerabilities (fix first)
sourceMappingURL) can disclose arbitrary.mapfiles. Pulled in transitively viavitepress->vite/@vue/compiler-sfc; build-time only (vitepress build), not shipped to the site's runtime bundle.CUSTOM_ELEMENT_HANDLINGbypassesafterSanitizeElementsfor allowed custom elements. Pulled in viamermaid(a runtimedependenciesentry) and ships in the client bundle that renders diagrams in visitors' browsers.Both are currently held below their patched versions by the
overridesblock inpackage.json:dompurifyneeds its floor raised to>=3.4.12.postcssisn't overridden at all yet and resolves to8.5.14transitively; add apostcssoverride (or a nested override undervitepress) pinned to>=8.5.18.npm outdatedreports no drift beyond this — every direct dependency is already at the newest version satisfying its declared range, so this is a pure security-floor issue, not routine version bumping.Outdated packages
Clean —
npm outdated --jsonreturned no results. No minor/major bumps pending.Worker instructions
postcss(high, build-tooling-only impact but trivial to fix) thendompurify(low, but shipped to the runtime/browser bundle viamermaid).dompurifyoverride floor to>=3.4.12and add apostcssoverride pinned to>=8.5.18, then regenerate the lockfile with plainnpm install(seeCLAUDE.md: never use--legacy-peer-depshere, it drops the optionalsearch-insightspeer and breaks the strictnpm ciused in CI's Dockerfile).rm -rf node_modules && npm ci && npm run docs:build(matches the Docker build CI runs). This repo has no automated test suite beyond the build itself — note that in the PR description.npm auditis clean after the change.gh pr readyonce it's green.