@tanstack/start-server-core
Supply chain provenance
Status for the latest visible version.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| phantom-deps | phantom-dep:isbot | AI (phantom-deps): Used in config files, not a direct import; stable false positive. | ai | |
| maintainer-change | maintainer-removed | AI (maintainer-change): TanStack publishes via GitHub Actions CI; individual maintainer list changes are expected org hygiene, not takeover signals. | ai | |
| publish-pattern | new-deps-added | AI (publish-pattern): fetchdts is a legitimate TS utility dep; package has SLSA provenance and strong ecosystem trust. | ai | |
| dependencies | unvetted-dep:fetchdts | AI (dependencies): fetchdts is a type-fetching utility with no runtime execution risk; TanStack publisher context makes supply-chain concern low. | ai | |
| maintainer-change | maintainer-added | AI (maintainer-change): lachlancollins is a known TanStack contributor; adding maintainers to a major ecosystem project is routine. | ai | |
| provenance | publisher-changed | AI (provenance): Transition from personal npm publish (tannerlinsley) to GitHub Actions CI/CD with SLSA provenance. This is the expected modern publishing pattern for TanStack packages. | ai | |
| publish-pattern | dormant-publish | AI (publish-pattern): Package has 417 versions, 5.7M weekly downloads, and SLSA provenance. Dormancy signal is a false positive for this actively maintained TanStack sub-package. | ai | |
| dependencies | unvetted-dep:h3-v2 | AI (dependencies): h3-v2 is a deliberate npm alias for [email protected], a known HTTP framework used intentionally by TanStack Start. This aliasing pattern is stable for this package. | ai | |
| bogus-package | bogus-package | AI (bogus-package): TanStack packages intentionally have minimal READMEs pointing to tanstack.com docs. This is a stable pattern across all TanStack packages, not a spam/phishing indicator. | ai |
Versions (showing 17 of 17)
| Version | Deps | Published |
|---|---|---|
| 1.169.17 | 7 / 4 | |
| 1.167.20 | 6 / 6 | |
| 1.132.38 | 7 / 3 | |
| 1.132.16 | 7 / 3 | |
| 1.132.7 | 7 / 3 | |
| 1.131.34 | 9 / 4 | |
| 1.131.17 | 9 / 4 | |
| 1.130.9 | 9 / 4 | |
| 1.128.3 | 8 / 4 | |
| 1.121.34 | 9 / 5 | |
| 1.120.19 | 8 / 3 | |
| 1.120.10 | 8 / 3 | |
| 1.120.7 | 8 / 3 | |
| 1.120.4 | 8 / 3 | |
| 1.120.3 | 8 / 3 | |
| 1.119.0 | 8 / 3 | |
| 1.117.1 | 8 / 3 |
v1.169.17
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v1.167.20
3 findings[Reject — re-review on republish] (prior reject: AI (osv): Affects all versions <1.167.30; generalizes to every pre-fix release.) ### Summary A type-confusion bug in seroval ≤ 1.5.2 ([upstream advisory](https://github.com/lxsmnsyc/seroval/security/advisories)) allowed a crafted JSON body sent to one TanStack Start server function to trigger invocation of a different client-referenced server function as a side effect of deserializing the request payload. This is not an authentication bypass and not remote code execution. The mechanism only invokes server functions that the same client could already reach directly via /_serverFn/<id>, and the target function's full middleware chain — including any user-supplied authentication, authorization, and inputValidator — runs as it would on a direct call. ### Impact To be exploitable in any meaningful sense, an application would need to expose a client-referenced server function that: - [ ] Performs a privileged side effect, and - [ ] Has no authentication/authorization middleware, and - [ ] Has no input validation A function meeting all three is already directly callable by any unauthenticated client at its own endpoint, so the practical impact on correctly-written applications is nil. The residual concerns are: A request to function A could cause function B to also execute, which may surprise observability/audit logging that keys off the request URL. Request-level middleware (as opposed to per-function middleware) does not re-run for the inner invocation. Server-only functions (isClientReferenced: false) cannot be reached through this mechanism. ### Patches Upgrade to @tanstack/start-server-core ≥ 1.167.30 (or the equivalent dated release of @tanstack/react-start / @tanstack/solid-start). The fix bumps seroval to ≥ 1.5.3 and adds defense-in-depth to the serialization adapter plugin shape so adapter payloads cannot be confused with internal seroval node types. ### Workarounds If you cannot upgrade immediately, ensure every createServerFn(...) exposed to the client has both an .inputValidator(...) and authentication/authorization middleware via .middleware([...]). This is recommended regardless of this advisory. ### Credits - [Mufeed VH](https://x.com/mufeedvh) of [Winfunc Research](https://winfunc.com/) - Upstream fix coordinated with Seroval maintainers https://github.com/lxsmnsyc/seroval
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
[Accepted risk] This version was published by a different npm account than previous versions on 2026-04-24. This could indicate a legitimate maintainer transition or an account compromise.