Skip to content

fix: patch TanStack Start server-function XSS - #42

Merged
EtanHey merged 1 commit into
masterfrom
security/tanstack-start-xss
Oct 27, 2026
Merged

EtanHey merged 1 commit into
masterfrom
security/tanstack-start-xss

Conversation

@EtanHey

@EtanHey EtanHey commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

Fix CVE-2026-102989 / GHSA-qx66-fv34-fjm8, reflected XSS in TanStack Start server-function responses. Vercel rejected the existing dependency with:

@tanstack/react-start@1.153.2 contains a known cross-site scripting vulnerability (CVE-2026-102989). Update to 1.168.60 or later and redeploy.

Pin the lowest patched Start release and the router/plugin versions required by its published dependency graph:

Package Before (resolved) After
@tanstack/react-start 1.153.2 and transitive 1.154.0 1.168.60
@tanstack/start-server-core 1.153.2 1.169.39 (transitive)
@tanstack/react-router 1.153.2 1.170.41
@tanstack/router-plugin 1.153.2 1.168.42

An override removes the second vulnerable Start copy. Keep unrelated direct dependencies unchanged and preserve the binary lockfile format with bunfig.toml.

Add a lightweight CI guard for every locked Start/server-core copy and all 84 compromised releases from GHSA-g7cv-rxg3-hmpx.

Verification

  • Guard failed on the original lockfile (two vulnerable Start copies and server-core); passes on the updated lockfile.

  • Refreshed lockfile and bun pm ls --all: each checked 33 TanStack package/version entries against all 84 malware versions; zero matches.

  • Normal pre-commit hook: 17 test files / 204 tests passed, tsc --noEmit passed, docs.local guard passed. Hook isolation fix from fix: isolate guard fixtures from hook Git environment #41 is in the base.

  • Shared Git configuration, root checkout HEAD and commit identity remained intact across the hook and push.

  • No local production build or dev server under host memory pressure. Vercel preview is READY at https://songscript-d66vj9ly3-etanheys-projects.vercel.app (deployment for this exact head). Authenticated Vercel CLI GETs returned HTTP 200 for / and /song/j970fgzqbvcw8mr4szspbchc0x80wqfs, with SongScript HTML and no login/error markers. Public access redirects to Vercel authentication; its login-page 200 is not counted as app proof. No build rate limit on this PR.

  • Size S: 115 added lines excluding the generated binary lockfile.

  • GitHub checks tanstack-xss, No tracked docs.local, and Vercel passed on 90f47034a426d413f9de071926ebc0bd14d1b5ee. Qodo reported its subscription inactive; no Qodo review was performed.

Review ownership

Security lead routes the independent Claude review and Codex security scan. Worker does not merge. No review bots or local CodeRabbit pass requested by this worker under the host-pressure brief.

Loop-record: implementer=codex/gpt-6.1-sol effort=high reviewer=claude/opus-5.5/high (APPROVE) + codex-security scan gpt-6.1-sol/high (PASS; bun.lockb reviewed manually after the inventory dropped it) rounds=1/1 defects=0 role=worker

— songscriptCodex (worker) · codex/gpt-6.1-sol

Security lead: reviews in orchestrator docs.local/.../security/review-songscript-42-{claude,scan}.md. Non-blocking follow-ups rowed: behavioural XSS test, router-ssr-query/devtools skew, npm-alias gap, SHA-pin actions. Pre-existing Convex authz findings (songs.ts public mutations) opened as a separate security row.

Pin patched Start and compatible router packages; guard all locked TanStack copies against CVE-2026-102989 and compromised releases.

Co-Authored-By: songscriptCodex running gpt-6.1-sol <noreply@anthropic.com>
@EtanHey EtanHey added the size:S Tight-loop PR size: 21-100 hand-written lines changed label Oct 27, 2026
@vercel

vercel Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
songscript Ready Ready Preview Oct 27, 2026 4:04pm UTC

@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@EtanHey
EtanHey merged commit d00bbcf into master Oct 27, 2026
4 checks passed

This branch was successfully deployed

2 active deployments
Production — 90f47034 Deployed Oct 27, 2026 by vercel[bot]
Preview — 90f47034 Deployed Oct 27, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S Tight-loop PR size: 21-100 hand-written lines changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant