Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to target SvelteKit application
-
DeliveryIdentify server route invoking query.batch()
-
ExploitSend repeated batch requests during high-concurrency period
-
ExecutionRace condition merges attacker and victim request contexts
-
ImpactAttacker response contains victim's sensitive session data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target SvelteKit application uses the query.batch() API - applications running affected versions but not invoking this specific API are not exposed. The CVSS 4.0 vector specifies PR:L, confirming that the attacker must hold a valid authenticated session in the application; unauthenticated exploitation is not indicated. A concurrent request from a separate authenticated victim user must be in flight at the same moment, reflected in the UI:P metric; the attacker cannot trigger the race unilaterally. The AT:P metric further constrains exploitation to a specific timing prerequisite: the two requests must arrive within a narrow window in the batch processor's scheduling cycle. Limiting factors include: requirement for authenticated attacker and victim sessions, non-default API usage (query.batch() must be explicitly invoked), high timing precision required (AC:H), and higher risk only under meaningful concurrent load. |
| Impact | The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:L/UI:P, score 5.9 Medium) encodes several real constraints: high attack complexity from the race window, a specific prerequisite attack condition (AT:P) requiring the batch API to be in use, authenticated access (PR:L), and victim interaction (UI:P) in the form of a concurrent request. These collectively make reliable exploitation difficult - the attacker has limited control over the timing of another user's requests. No EPSS probability score was present in the source data, so quantitative exploitation likelihood cannot be stated; this is a gap in the available intelligence. The vulnerability is not listed in the CISA KEV catalog and no proof-of-concept code appears in the referenced advisories, consistent with the low-to-moderate real-world urgency suggested by the Medium CVSS score. The confidentiality impact is rated high (VC:H), meaning that when the race does fire, the exposed data can be fully sensitive - a consequence that is disproportionate to the probability-adjusted risk. Applications with high concurrent authenticated user loads face meaningfully higher exposure than low-traffic deployments, where the race window may rarely or never be reached. |
| Exploit ScenarioDerived | An authenticated attacker submits a query.batch() request to a SvelteKit 2.38.0-2.60.0 application timed to coincide with a concurrent request from a different authenticated user - for example, by repeatedly issuing batch requests during a high-traffic period to maximize overlap probability. The race condition causes the batch processor to resolve both users' data under a shared context, returning the victim's session data (such as profile fields, tokens, or application state) in the attacker's response. No public exploit code has been identified, and the narrow timing window makes reliable, on-demand triggering difficult. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 28, 2026
Cross-user data disclosure in SvelteKit (npm/@sveltejs/kit versions 2.38.0 through 2.60.0) stems from a race condition in the query.batch() API that can cause concurrent HTTP requests from different authenticated users to merge under a single shared request context. Successful exploitation allows one user to receive response data belonging to another user's simultaneous session, including potentially sensitive application state. Vendor-released patch version 2.60.1 is available; no active exploitation has been confirmed and no public exploit code has been identified at time of analysis.
RemediationAI
Upgrade @sveltejs/kit to version 2.60.1 or later, which contains the fix per the upstream commit dadaefc2e647a0a62f49f3ee8bc7aa46f5e27056 and the advisory GHSA-hgv7-v322-mmgr at https://github.com/sveltejs/kit/security/advisories/GHSA-hgv7-v322-mmgr. If an immediate upgrade is blocked by compatibility constraints, the most targeted workaround is to refactor affected server-side code to avoid calls to query.batch(), replacing them with individual sequential queries; this eliminates the vulnerable code path entirely at the cost of additional request latency and reduced batching efficiency. Applications operating at low concurrency have a materially reduced probability of triggering the race condition but remain technically vulnerable and should still be patched. No additional firewall or network-layer controls are effective against this vulnerability, as the race occurs within the application's own request-processing logic.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 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
SvelteKit is a full-stack web application framework built on Svelte, distributed via npm as @sveltejs/kit (CPE: cpe:2.3:a:sveltejs:kit:*:*:*:*:*:*:*:*). The query.batch() API, introduced in version 2.38.0, aggregates multiple data-fetching operations into a single request cycle as a performance optimization. CWE-362 (Concurrent Execution Using Shared Resource with Improper Synchronization) identifies the root cause: the batch processor shares mutable request context state across concurrent invocations without adequate isolation guards. When two users' requests arrive within a sufficiently narrow timing window, the scheduler can incorrectly bind both to the same context object, leaking the resolved data of one session into the other's response. The fix is committed at dadaefc2e647a0a62f49f3ee8bc7aa46f5e27056 in the sveltejs/kit repository.
Know when Kit 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
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:P/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable race condition requires authenticated attacker, concurrent victim interaction, and precise timing; no availability impact applies.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
SvelteKit versions from 2.38.0 before 2.60.1 contain a race condition in query.batch that allows concurrent requests from different users to merge under a single request context. Attackers can exploit specific timing conditions to access sensitive data from other users' concurrent requests.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).
SvelteKit is a web development kit. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authe
Remote denial-of-service in @sveltejs/kit (versions ≤ 2.70.1) is achievable by any unauthenticated attacker who sends a
SvelteKit 2.19.0-2.49.4 has SSRF/DoS affecting applications with prerendered routes. Can be exploited to make the server
A path traversal vulnerability in SvelteKit's Vite preview server on Windows (versions 2.10.0 before 3.0.0) allows remot
Denial of service in SvelteKit versions 2.49.0 through 2.53.2 is achievable by unauthenticated remote attackers who subm
CPU exhaustion in SvelteKit's experimental remote form deserialization endpoint allows unauthenticated remote attackers
Memory exhaustion in @sveltejs/kit versions 2.49.0 through 2.52.1 allows unauthenticated remote attackers to crash the s
Request body size limit bypass in SvelteKit adapter-node allows unauthenticated attackers to submit oversized payloads,
SvelteKit versions 2.49.0 through 2.49.4 are vulnerable to denial-of-service attacks through the experimental form remot
Server-side request forgery in SvelteKit before 3.0.0 allows unauthenticated remote attackers to abuse the framework's s
Uncontrolled payload size acceptance in SvelteKit's remote form function handler allows unauthenticated remote attackers
SvelteKit versions prior to 2.57.1 are vulnerable to denial of service when the redirect() function is called from the h
EUVD-2026-67584
GHSA-m99x-q38g-c4c6
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB