Skip to content

fix(security): seroval 1.5.6 -> 1.6.11 (CVE-2026-104846) +77 more - #48

Open
leoisadev1 wants to merge 3 commits into
mainfrom
security/cve-2026-104846-deps
Open

leoisadev1 wants to merge 3 commits into
mainfrom
security/cve-2026-104846-deps

Conversation

@leoisadev1

@leoisadev1 leoisadev1 commented Oct 31, 2026 •

Copy link
Copy Markdown
Member

Summary

Main's bun.lock and the pinned tools/ios-model requirements carried versions covered by 81 published advisories (worst: seroval, CVSS 9.8). This PR moves every package with a fix to the lowest fixed version. 78 advisories are fully fixed. Two more (minimatch, glob) are fixed in every copy except one or two that can't be moved. One (http-cache-semantics) has no fix yet. The open items are listed at the end.

 package.json
+  "overrides": { "<pkg>@<vulnerable range>": "<lowest fixed>", ... }   # 28 range-keyed entries for transitive deps
 apps/web/package.json
-  happy-dom, @happy-dom/global-registrator ^20.14.5
+  happy-dom, @happy-dom/global-registrator ^21.0.4
-  vite ^8.0.0
+  vite ^8.3.3
 tools/ios-model/requirements-export.txt
-  transformers==4.57.6
+  transformers==5.17.0
 tools/ios-model/requirements-quantize.txt
-  onnx==1.19.1
+  onnx==1.22.0
 docs/ios-model.md
-  quantize env: Python 3.9
+  quantize env: Python 3.10        # onnx >= 1.20 publishes no Python 3.9 wheels (requires_python >=3.10)
 bun.lock                          # regenerated with bun 1.4.2

The transitive fixes use override keys that match only the vulnerable range (for example brace-expansion@>=2.0.0 <2.1.7), so copies on other major lines stay where they are. Two cases needed a different shape:

  • seroval: solid-js 1.9.15 pins seroval ~1.5.4, so solid-js moves to 1.9.18 (the first release on seroval ~1.6.11) and seroval is overridden to 1.6.11, the lowest version clear of all seven seroval advisories.
  • transformers: the CNA record for CVE-2026-80047 lists 4.57.0 through 5.16.1 as affected, but the PyPI range stops at 5.8.1. The pin goes to 5.17.0 so it clears both ranges. That one pin covers all seven transformers advisories.
  • glob and minimatch 10: the glob fix is 14.0.2, which depends on minimatch ^11, so glob 13.0.6 → 14.0.2 and minimatch 10.2.6 → 11.0.1 go in together for @vercel/nft.

Resolving again also moved some latest-tagged @tanstack/* packages up one patch, moved rolldown 1.2.8 → 1.2.16 (vite 8.3.3), and moved postcss 8.5.28 → 8.5.32. CVSS comes from cve.now. No advisory here is listed in CISA KEV and cve.now gives no EPSS for any of them. cve.now lists a public PoC for CVE-2025-71329 (image-size), CVE-2026-104850 (@modelcontextprotocol/sdk) and CVE-2026-4372 (transformers).

Evidence

  • Before (main 3cf2b67): bun install --frozen-lockfile, bun run lint, bun run typecheck, bun run test (215 + 114 tests pass), python3 -m unittest discover -s tools/ios-model -p 'test_*.py' (2 tests OK) and bun run build all pass on bun 1.4.2.
    After (this branch): the same steps all pass with the same test counts. The build ran with --force so no Turbo cache was used. vite preview of the built web app serves / with HTTP 200.
  • Remover flow: the repo's own bun run test:layout (Playwright, Chromium 153) ran against vite preview of this branch's build with the cat.webp sample: "11 widths, PNG alpha, download, reset, and invalid input passed".
  • transformers 5.17.0: export.py --size 384 on Python 3.13 with torch 2.14.0+cpu, using the reviewed checkpoint (safetensors SHA-256 4417d897…0815). The deform patch differed from torchvision by 3.0e-5, the patched model from the reference by 5.8e-5 in logits, and the final ONNX from torch by 6.2e-5 in logits and 6.9e-10 in sigmoid. All are inside the script's 1e-3 / 2.5e-4 gates, so the export was published.
  • onnx 1.22.0: quantize.py (Python 3.10, onnxruntime 1.19.2) quantized and packaged that real 384px export into .onnx and .ort. Old and new pins also both pass on a synthetic Conv+MatMul model.
  • glob 14 under @vercel/nft: nodeFileTrace on a fixture with a dynamic require(__dirname + '/dir/' + x) gives the same file list on main and on this branch.
  • Every advisory row was re-checked against cve.now's affected ranges and the regenerated bun.lock / requirements.
  • Not checked: Firefox and WebKit runs of the remover flow, and a byte comparison of regenerated model artifacts against the phone-tested ones. As docs/ios-model.md says, the conversion versions can change artifact bytes. Nothing in the shipped model files changes here.
  • The independent review ran on Claude Opus 5.5 because the planned GPT reviewer was unavailable. Its one actionable finding (the CVE-2026-80047 range conflict) is fixed above. The katex 0.16 → 0.18 override under mermaid 12.0.0 is semver-major for 0.x, but there is no fix on the 0.16 line and mermaid 12.2 itself moved to ^0.18.

Fixed advisories

Advisory CVSS Package Affected range Change File
CVE-2026-104846 9.8 seroval >=0.12.0 <1.6.2 1.5.6 → 1.6.11 bun.lock
CVE-2026-90711 9.1 proxy-addr >=1.1.0 <2.0.8 2.0.7 → 2.0.8 bun.lock
CVE-2026-114111 8.9 sharp >=0 <0.35.5 0.35.4 → 0.35.5 bun.lock
CVE-2026-115895 8.8 happy-dom (direct) >=17.0.0 <21.0.4 20.14.5 → 21.0.4 bun.lock
CVE-2025-71329 8.7 image-size >=1.2.0 <2.0.3 2.0.2 → 2.0.3 bun.lock
CVE-2025-71330 8.7 image-size >=0.6.3 <2.0.3 2.0.2 → 2.0.3 bun.lock
CVE-2026-27489 8.7 onnx (direct) >=0 <1.21.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-93749 8.7 source-map-js >=1.0.0 <1.2.2 1.2.1 → 1.2.2 bun.lock
CVE-2026-111767 8.6 @modelcontextprotocol/sdk >=1.24.0 <1.32.0 1.30.0 → 1.32.0 bun.lock
CVE-2026-118660 8.6 happy-dom (direct) >=0 <21.0.0 20.14.5 → 21.0.4 bun.lock
CVE-2026-28500 8.6 onnx (direct) >=0 <1.21.0rc1 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-34445 8.6 onnx (direct) >=0 <1.21.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-102422 8.1 shell-quote >=1.8.4 <1.11.0 1.10.0 → 1.11.0 bun.lock
CVE-2026-4800 8.1 lodash-es >=4.0.0 <4.18.0 4.17.23 → 4.18.0 bun.lock
CVE-2026-5241 8 transformers (direct) >=0 <=5.2.0 4.57.6 → 5.17.0 tools/ios-model/requirements-export.txt
CVE-2025-14929 7.8 transformers (direct) >=0 <=5.0.0-rc0 4.57.6 → 5.17.0 tools/ios-model/requirements-export.txt
CVE-2026-4372 7.8 transformers (direct) >=0 <5.3.0 4.57.6 → 5.17.0 tools/ios-model/requirements-export.txt
CVE-2026-80047 7.8 transformers (direct) >=4.49.0 <=5.8.1 4.57.6 → 5.17.0 tools/ios-model/requirements-export.txt
CVE-2024-45296 7.5 path-to-regexp >=4.0.0 <6.3.0 6.1.0 → 6.3.0 bun.lock
CVE-2026-102276 7.5 brace-expansion >=0 <1.1.19 1.1.18 → 1.1.21 bun.lock
CVE-2026-102276 7.5 brace-expansion >=2.0.0 <2.1.5 2.1.4 → 2.1.7 bun.lock
CVE-2026-102276 7.5 brace-expansion >=4.0.0 <5.0.10 5.0.9 → 5.0.12 bun.lock
CVE-2026-102278 7.5 brace-expansion >=0 <1.1.20 1.1.18 → 1.1.21 bun.lock
CVE-2026-102278 7.5 brace-expansion >=2.0.0 <2.1.6 2.1.4 → 2.1.7 bun.lock
CVE-2026-102278 7.5 brace-expansion >=4.0.0 <5.0.11 5.0.9 → 5.0.12 bun.lock
CVE-2026-104845 7.5 seroval >=0 <1.6.3 1.5.6 → 1.6.11 bun.lock
CVE-2026-104850 7.5 @modelcontextprotocol/sdk >=1.12.0 <1.31.0 1.30.0 → 1.32.0 bun.lock
CVE-2026-109869 7.5 undici >=7.18.0 <7.30.1 7.29.1 → 7.30.1 bun.lock
CVE-2026-109869 7.5 undici >=8.0.0 <8.12.2 8.10.2 → 8.12.2 bun.lock
CVE-2026-112942 7.5 launch-editor >=0 <2.14.2 2.14.1 → 2.14.2 bun.lock
CVE-2026-116581 7.5 seroval >=0 <1.6.8 1.5.6 → 1.6.11 bun.lock
CVE-2026-116581 7.5 seroval >=0 <1.6.8 1.6.7 → 1.6.11 bun.lock
CVE-2026-116584 7.5 seroval >=1.4.1 <1.6.8 1.5.6 → 1.6.11 bun.lock
CVE-2026-116584 7.5 seroval >=1.4.1 <1.6.8 1.6.7 → 1.6.11 bun.lock
CVE-2026-4867 7.5 path-to-regexp >=4.0.0 <6.3.0 6.1.0 → 6.3.0 bun.lock
CVE-2026-87018 7.5 undici >=7.0.0 <7.30.1 7.29.1 → 7.30.1 bun.lock
CVE-2026-87018 7.5 undici >=8.0.0 <8.12.2 8.10.2 → 8.12.2 bun.lock
CVE-2026-92708 7.5 devalue >=5.1.0 <5.9.3 5.9.2 → 5.9.3 bun.lock
CVE-2026-109383 7.4 undici >=7.0.0 <7.30.1 7.29.1 → 7.30.1 bun.lock
CVE-2026-109383 7.4 undici >=8.0.0 <8.12.2 8.10.2 → 8.12.2 bun.lock
CVE-2026-109829 7.4 undici >=7.0.0 <7.30.1 7.29.1 → 7.30.1 bun.lock
CVE-2026-109829 7.4 undici >=8.0.0 <8.12.2 8.10.2 → 8.12.2 bun.lock
CVE-2026-116580 7.3 seroval >=0 <1.6.8 1.5.6 → 1.6.11 bun.lock
CVE-2026-116580 7.3 seroval >=0 <1.6.8 1.6.7 → 1.6.11 bun.lock
CVE-2026-49114 7.1 onnx (direct) >=0 <1.21.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-9856 7.1 transformers (direct) >=0 <5.10.0 4.57.6 → 5.17.0 tools/ios-model/requirements-export.txt
CVE-2026-109955 6.9 hono >=4.12.4 <4.13.11 4.13.7 → 4.13.11 bun.lock
CVE-2026-118773 (partly) 6.3 glob 13.0.6 bundled inside nf3 0.3.24's dist/node_modules (nitro's tracer) >=9.0.0 <14.0.2 The lockfile copy is fixed (13.0.6 → 14.0.2). This copy is vendored inside the nf3 tarball, so overrides can't reach it. nf3 0.4.x drops the bundle, but nitro 3.0.260610-beta requires nf3 ^0.3.17, so the fix is a nitro upgrade, which is out of scope here.
CVE-2026-118764 6.9 minimatch >=0 <11.0.1 10.2.6 → 11.0.1 bun.lock
CVE-2026-118661 6.5 happy-dom (direct) >=0 <20.14.6 20.14.5 → 21.0.4 bun.lock
CVE-2026-1839 6.5 transformers (direct) >=0 <5.0.0 4.57.6 → 5.17.0 tools/ios-model/requirements-export.txt
CVE-2026-2950 6.5 lodash-es >=0 <4.18.0 4.17.23 → 4.18.0 bun.lock
CVE-2026-101911 6.3 ip-address >=0 <10.7.1 10.7.0 → 10.7.4 bun.lock
CVE-2026-101912 6.3 ip-address >=0 <10.7.1 10.7.0 → 10.7.4 bun.lock
CVE-2026-111997 6.3 ip-address >=0 <10.7.4 10.7.0 → 10.7.4 bun.lock
CVE-2026-112943 6.3 launch-editor >=0 <2.14.2 2.14.1 → 2.14.2 bun.lock
CVE-2026-112944 6.3 launch-editor >=0 <2.14.2 2.14.1 → 2.14.2 bun.lock
CVE-2026-112946 6.3 vite (direct) >=8.3.0 <8.3.3 8.3.0 → 8.3.3 bun.lock
CVE-2026-112947 6.3 vite (direct) >=8.3.0 <8.3.3 8.3.0 → 8.3.3 bun.lock
CVE-2026-118773 6.3 glob >=9.0.0 <14.0.2 13.0.6 → 14.0.2 bun.lock
CVE-2026-115919 6.2 onnx (direct) >=0 <1.22.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-115920 6.2 onnx (direct) >=1.2.1 <1.22.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-115921 6.2 onnx (direct) >=1.4.0 <1.22.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-115922 6.2 onnx (direct) >=0 <1.22.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-110306 6.1 fast-uri >=3.0.0 <3.1.9 3.1.7 → 3.1.9 bun.lock
CVE-2026-104844 5.9 postcss-selector-parser >=0 <6.1.5 6.0.10 → 6.1.5 bun.lock
CVE-2026-109841 5.9 undici >=7.15.0 <7.30.1 7.29.1 → 7.30.1 bun.lock
CVE-2026-109841 5.9 undici >=8.0.0 <8.12.2 8.10.2 → 8.12.2 bun.lock
CVE-2026-109924 5.9 undici >=7.0.0 <7.30.1 7.29.1 → 7.30.1 bun.lock
CVE-2026-109924 5.9 undici >=8.0.0 <8.12.2 8.10.2 → 8.12.2 bun.lock
CVE-2026-109932 5.9 undici >=7.0.0 <7.30.1 7.29.1 → 7.30.1 bun.lock
CVE-2026-109932 5.9 undici >=8.0.0 <8.12.2 8.10.2 → 8.12.2 bun.lock
CVE-2026-34447 5.5 onnx (direct) >=0 <1.21.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-44512 5.5 onnx (direct) >=1.9.0 <1.22.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-102277 5.3 brace-expansion >=0 <1.1.21 1.1.18 → 1.1.21 bun.lock
CVE-2026-102277 5.3 brace-expansion >=2.0.0 <2.1.7 2.1.4 → 2.1.7 bun.lock
CVE-2026-102277 5.3 brace-expansion >=4.0.0 <5.0.12 5.0.9 → 5.0.12 bun.lock
CVE-2026-110816 5.3 qs >=6.7.0 <6.16.1 6.16.0 → 6.16.1 bun.lock
CVE-2026-111757 5.3 hono >=4.12.4 <4.13.11 4.13.7 → 4.13.11 bun.lock
CVE-2026-116583 5.3 seroval >=1.6.0 <1.6.11 1.6.7 → 1.6.11 bun.lock
CVE-2026-118663 5.3 @hono/node-server >=1.19.10 <2.1.3 2.1.1 → 2.1.3 bun.lock
CVE-2026-109344 5.1 dompurify >=3.4.13 <3.4.16 3.4.15 → 3.4.17 bun.lock
CVE-2026-109345 5.1 dompurify >=0 <3.4.16 3.4.15 → 3.4.17 bun.lock
CVE-2026-116802 5.1 dompurify >=0 <3.4.17 3.4.15 → 3.4.17 bun.lock
CVE-2026-116803 5.1 dompurify >=0 <3.4.17 3.4.15 → 3.4.17 bun.lock
CVE-2026-116804 5.1 dompurify >=3.4.4 <3.4.17 3.4.15 → 3.4.17 bun.lock
CVE-2026-110180 4.8 fast-uri >=3.1.3 <3.1.9 3.1.7 → 3.1.9 bun.lock
CVE-2026-86472 4.8 fast-uri >=3.0.0 <3.1.8 3.1.7 → 3.1.9 bun.lock
CVE-2026-116582 4.7 seroval >=1.5.5 <1.6.10 1.5.6 → 1.6.11 bun.lock
CVE-2026-116582 4.7 seroval >=1.5.5 <1.6.10 1.6.7 → 1.6.11 bun.lock
CVE-2026-34446 4.7 onnx (direct) >=0 <1.21.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-110095 3.7 fast-uri >=3.0.0 <3.1.9 3.1.7 → 3.1.9 bun.lock
CVE-2026-110725 3.7 fast-uri >=3.0.0 <3.1.9 3.1.7 → 3.1.9 bun.lock
CVE-2026-63632 3.3 onnx (direct) >=1.3.0 <1.22.0 1.19.1 → 1.22.0 tools/ios-model/requirements-quantize.txt
CVE-2026-114127 2.3 astro >=7.1.0 <7.3.3 7.3.2 → 7.3.3 bun.lock
CVE-2026-103923 2.1 katex >=0.11.0 <0.18.2 0.16.47 → 0.18.2 bun.lock
CVE-2026-112945 2.1 vite (direct) >=8.3.0 <8.3.3 8.3.0 → 8.3.3 bun.lock
GHSA-F897-62HF-6GXQ n/a @modelcontextprotocol/sdk >=1.10.0 <1.30.1 1.30.0 → 1.32.0 bun.lock

Left open

Advisory CVSS Package Affected range Why open
CVE-2026-93748 8.7 http-cache-semantics 4.2.0 (via astro) >=0 <=4.2.0 No fixed version is published.
CVE-2026-118773 (partly) 6.3 glob 13.0.6 bundled inside nf3 0.3.24's dist/node_modules (nitro's tracer) >=9.0.0 <14.0.2 The lockfile copy is fixed (13.0.6 → 14.0.2). This copy is vendored inside the nf3 tarball, so overrides can't reach it. nf3 0.4.x drops the bundle, but nitro 3.0.260610-beta requires nf3 ^0.3.17, so the fix is a nitro upgrade, which is out of scope here.
CVE-2026-118764 6.9 minimatch 3.1.5 (via @stoplight/spectral-core ^3.1.4) and 5.1.9 (via filelist ^5.0.1) >=0 <11.0.1 The only fix is 11.0.1, a major jump. minimatch 9+ dropped the callable default export these consumers use, and no newer release of either parent accepts minimatch 11 (filelist's latest still wants ^10). The minimatch 10.2.6 copy is fixed above.

Merge Danger

Door: two-way. Only dependency versions, the lockfile and one docs line change, and a revert restores the old resolution.

Blast radius: the web build and dev tooling, the docs build, the test environment (happy-dom 21), and the offline iOS model scripts. Nothing changes in @bg0/browser's own dependencies, so the published package's manifest is unchanged. The riskiest parts are transformers 4 → 5 in the offline export tool, which was exercised end to end above, and the docs' quantize environment moving from Python 3.9 to 3.10.

Created with Claude Opus 5.5 in Capy.

leoisadev1 and others added 3 commits October 31, 2026 13:10
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@vercel

vercel Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
bg0-docs Ready Ready Preview Oct 31, 2026 1:21pm UTC
bg0-web Ready Ready Preview Oct 31, 2026 1:21pm UTC

Request Review

@greptile-apps

greptile-apps Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable defect was established.

Summary

Updates dependency versions across the web app, docs tooling, and offline iOS model tools.

  • Web and docs tools now resolve updated dependency versions.
  • The iOS model exporter uses transformers 5.17.0.
  • The iOS quantizer uses ONNX 1.22.0 with Python 3.10.

No actionable issue was established. Tests were not rerun during this review.

Acknowledged by leoisadev1: http-cache-semantics remains open because no fix is published; the bundled nf3 copy of glob needs an out-of-scope Nitro upgrade; older minimatch copies remain because their consumers need the removed callable export. The katex major-version override is intentional because the older line has no fix.

Reviews (1) · Last reviewed commit: "fix(security): pin transformers 5.17.0 f..." · Reviewed by Greptile

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

Devin Review

Comment thread apps/web/package.json Resolved

This branch was successfully deployed

2 active deployments
Preview – bg0-docs — 020db77d Deployed Oct 31, 2026 by vercel[bot]
Preview – bg0-web — 020db77d Deployed Oct 31, 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.

1 participant