Skip to content

fix(deps): security bumps for 15 packages with known CVEs (seroval critical first) - #8624

Closed
cwschroeder wants to merge 2 commits into
block:mainfrom
cwschroeder:fix/sicherheits-updates-20261027
Closed

cwschroeder wants to merge 2 commits into
block:mainfrom
cwschroeder:fix/sicherheits-updates-20261027

Conversation

@cwschroeder

Copy link
Copy Markdown

Security sweep: 15 packages with known CVEs lifted above their fixed versions

One PR, acute first. Mechanism: exact-version overrides in pnpm-workspace.yaml
("pkg@vulnerable": "fixed") so only the vulnerable resolved versions move —
no whole-tree upgrade. Every target version was verified to be ≥48 h old before
use (oldest margin: baseline-browser-mapping 2.11.32 at ~92 h).

Sev Package from → to Advisory
CRITICAL seroval 1.5.4 → 1.6.3 GHSA-p6vx-979v-rg4c (also HIGH GHSA-jp82-f5mq-hwhp)
HIGH @tiptap/core 3.22.5 → 3.32.0 GHSA-j95f-988m-3j2f (+ MODERATE GHSA-cp6q-959q-f8rh)
HIGH browserslist 4.28.2 → 4.28.7 GHSA-73wf-gq98-2v4g, GHSA-c83g-rgw3-j3cx
HIGH markdown-it 14.1.1 → 14.3.3 GHSA-gfr2-rv44-r23c, GHSA-r7fv-28h4-cvq7, GHSA-253c-mchw-3w2r, GHSA-6v5v-wf23-fmfq, GHSA-vfgh-jcmw-g37q
HIGH nanoid 3.3.16, 3.3.17 → 3.3.18 GHSA-2v37-7h3g-55p8
HIGH prosemirror-view 1.41.8 → 1.42.3 GHSA-c8x8-7fp4-3x9w
HIGH seroval 1.5.4 → 1.6.3 GHSA-jp82-f5mq-hwhp
HIGH source-map-js 1.2.1 → 1.2.2 GHSA-68fv-2mgg-jv7q
HIGH vite 8.0.16 → 8.1.6 GHSA-587h-7wmj-h5pm, GHSA-698v-4r3x-3vcv, GHSA-r825-w8mm-5pxw, GHSA-rq7h-c2jc-7f22, GHSA-9jrq-w75r-8gcw
HIGH zod 4.4.3 → 4.6.7 GHSA-mrhx-c7xc-m3w5
MODERATE @babel/core 7.29.0 → 7.29.6 GHSA-4x5r-pxfx-6jf8 (LOW)
MODERATE @vitest/mocker 4.1.11 → 4.1.12 GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp
MODERATE baseline-browser-mapping 2.10.32 → 2.11.32 GHSA-w5vr-8v7q-w6rv
MODERATE postcss 8.5.19 → 8.5.23 GHSA-fxqj-rqcc-2cmp
MODERATE postcss-selector-parser 6.0.10 → 6.1.5 GHSA-rj75-hqrm-r3gf

Deviations from the scan report (deliberate, documented inline)

  • postcss-selector-parser 6.1.5 instead of 7.1.7 (major): OSV fixes the
    advisory in 6.1.5 (6.x line) and 7.1.6+ (7.x line). The only consumer,
    @tailwindcss/[email protected] (latest), pins 6.0.10 exactly — forcing a
    major on it was not worth it when the same-major line carries the fix.
  • Tiptap lockstep: core 3.32.0 is not loadable next to 3.22.5 siblings
    (@tiptap/react imports cancelPositionCheck, which 3.32.0 removed), so the
    whole @tiptap family (29 packages) moves to 3.32.0 together, plus
    @tiptap/pm 3.32.0 for its peer. No own advisories on the siblings.
  • Single-copy pins forced by the bumps: prosemirror-view 1.42.3 and
    prosemirror-transform 1.12.4 package-wide (duplicate private classes broke
    desktop tsc), linkifyjs 4.4.0 (extension-link 3.32.0 registered the
    buzz:// protocol in its own linkifyjs copy — composer autolink silently
    lost it; caught by composerLinkPastePipeline tests).
  • baseline-browser-mapping 2.11.32 instead of 2.11.33: browserslist 4.28.7
    floats ^2.10.44, which resolved 2.11.33 (45 h old — inside the Karenz
    window). Package-wide pin to 2.11.32 clears the Karenz.
  • postcss converges on 8.5.23 tree-wide (the tailwind path previously sat on
    8.5.26; 8.5.23 is the fixed version, both far beyond Karenz).

Verification

  • pnpm install --frozen-lockfile from a clean tree: single copy of every
    touched package, no stale versions in pnpm-lock.yaml.
  • pnpm -r check (desktop / web / admin-web): green.
  • desktop pnpm typecheck + web pnpm typecheck: green.
  • desktop pnpm test: 6834/6834 pass (+ jsdom suite 161/161) — includes the
    link-paste pipeline tests that exercise the linkifyjs registration path.
  • web pnpm build and desktop pnpm build: built successfully on vite 8.1.6.

Security sweep, acute first: seroval (CRITICAL GHSA-p6vx-979v-rg4c), then
HIGHs in @tiptap/core, browserslist, markdown-it, nanoid, prosemirror-view,
seroval, source-map-js, vite, zod, and MODERATE/LOW fixes for @babel/core,
@vitest/mocker, baseline-browser-mapping, postcss, postcss-selector-parser.

Mechanism: exact-version overrides in pnpm-workspace.yaml so only the
vulnerable resolved versions move — no whole-tree upgrade. All target
versions are at least 48h old.

Lockstep pins forced by the bumps (each documented inline):
- @tiptap family 3.22.5 -> 3.32.0 (core 3.32.0 breaks with 3.22.5 siblings:
  @tiptap/react imports cancelPositionCheck, removed from core)
- prosemirror-view 1.42.3, prosemirror-transform 1.12.4 (duplicate private
  classes broke desktop tsc)
- linkifyjs 4.4.0 (extension-link registered the buzz protocol in its own
  linkifyjs copy; composer autolink lost it)

postcss-selector-parser takes 6.1.5, the 6.x-line fix of GHSA-rj75-hqrm-r3gf,
instead of 7.1.7: the only consumer (@tailwindcss/typography 0.5.20) pins
6.0.10 exactly.

Signed-off-by: Christian Schröder <[email protected]>
@cwschroeder
cwschroeder requested a review from a team as a code owner October 27, 2026 15:35
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

🔐 Codex Security Review

Status: review required for the current range.

The current range is b14884980e9ff70c201ba97d459bed05286fdfd9...af329e96fa522e2b7bfb4549223f51d36a91883b.
A new review must complete for this exact range. When manual authorization
is required, a user with write access must comment exactly
@buzz-security-review af329e96fa522e2b7bfb4549223f51d36a91883b to authorize a new review.
Any previous review applies only to its recorded range.

Review findings on 7c1fd3b: @tiptap/pm 3.32.0 floated prosemirror-model
1.25.12 while tiptap-markdown kept 1.25.4 (duplicate instance classes across
the markdown-to-editor boundary) — one package-wide copy now. postcss is
pinned 8.5.23 tree-wide explicitly instead of converging implicitly (the
tailwind path floated 8.5.26, also fixed).

Signed-off-by: Christian Schröder <[email protected]>
@cwschroeder

Copy link
Copy Markdown
Author

Addressed both review findings in af329e9:

  • prosemirror-model duplicate (B1): @tiptap/pm 3.32.0 floats prosemirror-model 1.25.12 while tiptap-markdown/prosemirror-markdown kept 1.25.4. Now pinned package-wide to 1.25.12 (866 h old, satisfies \^1.25.0) — markdown output and editor state share one instance.
  • postcss 8.5.26 → 8.5.23 (B2): now an explicit package-wide pin of 8.5.23 (the fixed version; the tailwind path floated 8.5.26, also fixed) with a comment — convergence is intentional, not accidental.

Re-verified on the clean tree: pnpm install --frozen-lockfile no drift, pnpm -r check green, desktop tsc + web tsc green, desktop tests 6834/6834 (+161 jsdom), web + desktop vite builds succeed on 8.1.6.

SanHsien added a commit to SanHsien/buzz that referenced this pull request Oct 28, 2026
…s 8618-8641

All 20 upstream commits merged in 0b71418 with no conflicts; the only fork-patched
file upstream touched is _ci-rust.yml (a version number in a comment), and the
fork's Windows cold-build timeout patch survived. The 19 open PRs wait for merge;
block#8624 is noted as the upstream fix for the tiptap/prosemirror alerts this fork
already decided to wait on, and block#8643 for Hermes-backed agents. Watermarks move
to 24a3706 / PR 8643 / issue 8641.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@cwschroeder

Copy link
Copy Markdown
Author

Opened against upstream by mistake from an automated dependency job meant for our fork. Closing, sorry for the noise.

SanHsien added a commit to SanHsien/buzz that referenced this pull request Oct 29, 2026
…dvance all three watermarks

32 commits, 54 PRs and 2 issues ruled on with pinned head SHAs; no product
change adopted yet. The block#8624 trigger is rewritten now that it closed unmerged.

Executed from the roadmap's near-term table; the finished row is removed in
the same commit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: SanHsien <[email protected]>
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