OFFLINE
Awaiting data
Security intelligence
CriticalCritical vulnerability

CVE-2026-102989: TanStack Router: Unauthenticated reflected XSS in TanStack Start server-function responses

GitHub Advisories · officialPublished Oct 15, 2026Risk 50/100

## Impact An unauthenticated attacker can craft a URL to a server function in an affected TanStack Start app. If someone opens the link, the app can return attacker-controlled HTML from its own origin and run the attacker's JavaScript there. The script can access same-origin data available to that visitor and make requests with their authority. ## Cause The server-function transport can pass request payload fields into internal middleware state instead of limiting them to public input fields. A malformed payload can leave an attacker-controlled result in the error path. Response handling can then treat a response-shaped object as an HTTP response. ## Affected versions Published versions of `@tanstack/start-server-core`, `@tanstack/react-start`, `@tanstack/solid-start`, and `@tanstack/vue-start` from `1.143.12` up to, but not including, their respective patched versions are affected. The patched versions are `@tanstack/[email protected]`, `@tanstack/[email protected]`, `@tanstack/[email protected]`, and `@tanstack/[email protected]`. ## Fix The fix limits client-supplied server-function input to public fields and validates responses at the server boundary. Upgrade to the corresponding patched package version. ## Temporary mitigations For the configured server-function path, usually `/_serverFn/*`, an edge or WAF rule can consider blocking requests without the literal `x-tsr-serverFn: true` header and browser document navigations such as `Sec-Fetch-Mode: navigate` or `Accept: text/html`. A restrictive Content Security Policy on server-function responses can provide another browser-side restriction. These are mitigation suggestions, not a complete fix. The header is client-controlled and is not authentication. Test rules against legitimate GET and POST server functions and use a matching version-specific backport where possible. ## Credits Lovable helped us discover and report this issue. We thank them for their help.

Upgrade affected packages to a patched version: @tanstack/start-server-core 1.169.39, @tanstack/react-start 1.168.60, @tanstack/solid-start 1.168.57, @tanstack/vue-start 1.168.56.

Vendor
Not specified
Product
@tanstack/start-server-core, @tanstack/react-start, @tanstack/solid-start, @tanstack/vue-start
Exploitation
none known
Evidence
official
CVSS
9.3

This record is attributed to GitHub Advisories. Exploitation status and remediation guidance are kept separate from the vulnerability's technical severity.

Open primary source