Skip to main content

TanStack Start CVE-2026-102989

| EUVDEUVD-2026-98849 CRITICAL
Cross-site Scripting (XSS) (CWE-79)
2026-10-13 GitHub_M GHSA-qx66-fv34-fjm8
9.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft server-function URL with non-public payload fields
  2. Delivery
    Deliver same-origin link to victim
  3. Exploit
    Bypass response validation so object is treated as HTTP response
  4. Execution
    Victim browser renders attacker-controlled HTML/JS
  5. Impact
    Injected script reads same-origin data and acts with victim authority

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The application must be a TanStack Start deployment using server functions via a vulnerable package version: @tanstack/start-server-core 1.143.12 to <1.169.39, @tanstack/react-start <1.168.60, @tanstack/solid-start <1.168.57, or @tanstack/vue-start <1.168.56 (Router before release-2026-09-30-1747). The specific prerequisite is that server-function request handling accepts non-public/attacker-supplied payload fields that steer attacker-controlled middleware state onto the error path, where a response-shaped object is accepted as an HTTP response without validating it is a genuine Response - allowing attacker HTML to be returned from the app origin. Exploitation is LIMITED by required user interaction (UI:R): a victim must open the attacker's crafted server-function URL for the injected script to execute; no attacker authentication is required (PR:N). Upgrading to the fixed versions, which enforce a strict Response instanceof check, removes the condition entirely.

Impact

This is a genuine high-priority issue, not an inflated CVSS score. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N, 9.3) is internally consistent with the description: an unauthenticated, remote, low-complexity attack that crosses a security scope boundary (S:C) - the vulnerable server code is abused to compromise the victim's browser/same-origin context. The only mitigating metric is UI:R, since a victim must open the attacker's crafted server-function URL, which places this closer to reflected/stored-link XSS than to fully autonomous exploitation. No EPSS score, CISA KEV entry, or public POC was provided in the input, so there is no current evidence of active or at-scale exploitation; the severity is driven by the capability (same-origin script execution and acting with the visitor's authority) rather than by observed in-the-wild activity. The fix is confirmed available across all affected packages, so the practical risk is concentrated in deployments that have not yet upgraded. Note that EPSS/KEV/POC signals are absent from the input rather than confirmed-negative, so exploitation likelihood cannot be quantified from the data at hand.

Exploit ScenarioDerived

An attacker crafts a malicious server-function URL for a vulnerable TanStack Start application and inserts non-public fields into the request payload so attacker-controlled middleware state reaches the error path, causing a response-shaped object containing attacker HTML to be accepted as the HTTP response. The attacker sends this same-origin link to a victim (e.g. via phishing); when the victim opens it, the injected script runs in the application's origin, reads same-origin data, and issues authenticated requests as that visitor. No public exploit identified at time of analysis, though the fixing commit and PR are public and detail the vulnerable code path.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 13, 2026

Reflected cross-site scripting in TanStack Start server functions lets an unauthenticated attacker craft a server-function URL that causes the application's own origin to return attacker-controlled HTML, which executes in the browser of any visitor who opens that URL and can then read same-origin data or issue requests with the victim's authority. The flaw affects @tanstack/start-server-core from 1.143.12 through versions before 1.169.39, plus @tanstack/react-start before 1.168.60, @tanstack/solid-start before 1.168.57, and @tanstack/vue-start before 1.168.56 (TanStack Router before release-2026-09-30-1747). Exploitation is unauthenticated (PR:N) but requires victim interaction (UI:R) - the target must open the attacker-supplied URL - and no public exploit code or active exploitation has been identified at time of analysis, so the 9.3 score reflects the high confidentiality and integrity impact of the same-origin script injection rather than confirmed in-the-wild attacks.

RemediationAI

Upgrade to the vendor-released fixed versions: @tanstack/start-server-core 1.169.39, @tanstack/react-start 1.168.60, @tanstack/solid-start 1.168.57, and @tanstack/vue-start 1.168.56 (or the TanStack Router release tagged release-2026-09-30-1747). Patch details, the full advisory, the referenced pull request, and the fixing commit are available at https://github.com/TanStack/router/security/advisories/GHSA-qx66-fv34-fjm8, https://github.com/TanStack/router/pull/8573, https://github.com/TanStack/router/commit/d521abd71c69f1ff010bb3def4d417cb5fa058cb, and https://github.com/TanStack/router/releases/tag/release-2026-09-30-1747. Because the fix enforces a strict instanceof Response check and refuses to serialize arbitrary response-shaped objects, no configuration flag or feature toggle restores the vulnerable behavior, so upgrading is the only complete remediation. If immediate upgrade is not possible, treat the exposure as an XSS vector: place an upstream reverse proxy or WAF rule in front of server-function endpoints that rejects requests carrying unexpected/non-public payload fields (for example, caller-supplied context or other fields the client should never set), and use a Content-Security-Policy with a restrictive script-src (nonce- or hash-based, no 'unsafe-inline') plus strict same-origin framing controls to blunt script execution if injected HTML is still served - noting that CSP is a defense-in-depth control, does not prevent the attacker-controlled HTML from being returned from the application origin, and can break legitimate inline-script or third-party script usage. Blocking or rate-limiting server-function URLs is not a reliable workaround because the endpoints are legitimate application functionality, and filtering solely on URL patterns will likely miss crafted variants; monitor access logs for server-function requests with anomalous payload keys while remediation is pending.

Affected VersionsENISA

vue-start 1.143.12, < 1.168.56
react-start 1.143.12, < 1.168.60
start-server-core 1.143.12, < 1.169.39
Router < release-2026-09-30-1747
solid-start 1.143.12, < 1.168.57

Affected Packages

npm @tanstack/react-start fix: 1.168.60
npm @tanstack/solid-start fix: 1.168.57
npm @tanstack/start-server-core fix: 1.169.39
npm @tanstack/vue-start fix: 1.168.56
euvd react_start fix: 1.168.60
euvd solid_start fix: 1.168.57
euvd start_server_core fix: 1.169.39
euvd vue_start fix: 1.168.56

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 8 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

TanStack Start implements "server functions" - RPC-style handlers that are invoked from the client and serialized across the network by @tanstack/start-server-core, with framework adapters for React, Solid, and Vue. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation / cross-site scripting) arising from a response-shaping weakness: the SSR/server-function pipeline used duck-typed structural checks (an object having 'response' and 'serverSsrCleanup' properties) instead of a genuine instanceof Response validation, and the server-function handler merged attacker-supplied payload fields - including non-public fields such as a caller-controlled context - into middleware state via safeObjectMerge. By placing non-public fields in the server-function request payload, an attacker can steer attacker-controlled middleware state onto the error path, where the framework's error handling accepted a response-shaped object as if it were a real HTTP response and returned it to the client. The result is that a crafted server-function URL serves attacker-authored HTML under the application's origin, bypassing the same-origin boundary. The upstream fix (PR #8573, commit d521abd71c69f1ff010bb3def4d417cb5fa058cb) aligns request and response handling: it requires value.response instanceof Response, validates the serverSsrCleanup state machine ('none' or 'stream' with a callable dispose), throws a TypeError when the SSR handler does not yield a Response, introduces ensureResponse/finalizeResponse/handleResponseError with a 500 fallback for unrecognized values, and restricts server-function invocation to explicit { data, context, method } fields rather than spreading attacker-controlled options.

Know when Router gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.3 CRITICAL
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
vuln.today AI 9.3 CRITICAL

Unauthenticated remote attacker crafts the URL (AV:N/AC:L/PR:N) but a victim must open it (UI:R); server flaw compromises the browser origin (S:C) enabling same-origin data access and action as the user (C:H/I:H, A:N).

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 13, 2026 - 17:03 EUVD
CVE Published
Oct 13, 2026 - 16:13 cve.org
CRITICAL 9.3

DescriptionCVE.org

TanStack Router is a client-first, server-capable, fully type-safe router and full-stack framework for the web. From 1.143.12 until 1.169.39 for @tanstack/start-server-core, 1.168.60 for @tanstack/react-start, 1.168.57 for @tanstack/solid-start, and 1.168.56 for @tanstack/vue-start, an unauthenticated attacker can place non-public fields in a server-function request payload so that attacker-controlled middleware state reaches the error path and a response-shaped object is accepted as an HTTP response. A crafted server-function URL can therefore return attacker-controlled HTML from the application's origin; when a visitor opens the URL, the injected script can access same-origin data and issue requests with the visitor's authority. This issue is fixed in @tanstack/start-server-core 1.169.39, @tanstack/react-start 1.168.60, @tanstack/solid-start 1.168.57, and @tanstack/vue-start 1.168.56.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 7 npm packages depend on @tanstack/start-server-core (7 direct, 0 indirect)

Ecosystem-wide dependent count for version 1.143.12.

Technical POC Analysis

CWE-79, reflected cross-site scripting.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

TanStack Start, a widely used framework for building customer-facing JavaScript web applications, carries a critical reflected cross-site scripting flaw that lets an unauthenticated attacker trick any visitor into running attacker-controlled code as if it came from the organization's own site. Once executed, that code can read data the victim's browser can access and perform actions under the victim's identity, putting customer accounts, session data, and trust in the affected application at risk. Because the defect spans several TanStack packages and every deployed application built on the vulnerable versions is exposed, leadership should treat remediation as a coordinated, time-bound engineering priority.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 58% exploitable
Prevalence
Medium
popular TanStack React-ecosystem full-stack framework, common but not universally deployed
Threat Intel
5
1 sources
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

More in Router

View all
CVE-2025-13184 CRITICAL POC
9.8 Dec 10

Unauthenticated remote attackers can enable Telnet on TOTOLINK X5000R AX1800 routers running firmware V9.1.0u.6369_B2023

CVE-2022-27668 CRITICAL POC
9.8 Jun 14

Depending on the configuration of the route permission table in file 'saprouttab', it is possible for an unauthenticated

CVE-2026-102240 CRITICAL POC
9.3 Sep 29

OS command injection in Netcore NAP930 firmware 0.1.241010.141410 allows unauthenticated remote attackers to execute arb

CVE-2026-101076 CRITICAL POC
9.3 Sep 28

An unauthenticated OS command injection in the CGI handler of Netcore NR289-GE firmware 1.4.5102 lets remote attackers e

CVE-2026-101000 CRITICAL POC
9.3 Sep 28

Missing authorization in Netcore NBR100V2 firmware 1.3.240614.030928 allows remote unauthenticated attackers to modify d

CVE-2026-14157 CRITICAL POC
9.4 Oct 01

Authenticated administrators of ASUS routers can execute arbitrary commands on the device by uploading a crafted file th

CVE-2026-101077 CRITICAL POC
9.3 Sep 28

Unauthenticated network attackers can bypass authentication in the Netcore NR289-GE router's boa_temp web handler and ab

CVE-2026-101075 CRITICAL POC
9.3 Sep 28

Remote unauthenticated OS command injection in Netcore NR289-GE firmware 1.4.5102 allows attackers to execute arbitrary

CVE-2026-101072 CRITICAL POC
9.3 Sep 28

Unauthenticated OS command injection in the Netcore NR289-GE router (firmware 1.4.5102) lets any remote attacker who can

CVE-2026-101039 CRITICAL POC
9.3 Sep 28

A stack-based buffer overflow in the devdiscover service of FAST FAC1900R firmware 20190827_2.0.2 lets unauthenticated r

CVE-2026-101001 CRITICAL POC
9.3 Sep 28

Unauthenticated OS command injection in the Netcore NBR200V2 router's Web Management Interface (firmware 1.3.241127.0712

CVE-2026-13313 HIGH POC
8.9 Oct 01

Authenticated administrators of certain ASUS router models can abuse leftover debug code in the device's web management

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy