Skip to main content

SvelteKit CVE-2026-66062

| EUVDEUVD-2026-54557 MEDIUM
Inefficient Regular Expression Complexity (ReDoS) (CWE-1333)
2026-08-07 GitHub_M GHSA-29g2-3rmr-qm68
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Send HTTP request with crafted long Accept header
  2. Delivery
    Trigger O(n²) regex backtracking in negotiate()
  3. Exploit
    Exhaust server CPU per request
  4. Execution
    Flood with concurrent requests
  5. Impact
    Deny service to legitimate users

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Regex complexity limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

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

Exploitation Conditions

Any HTTP request processed by a SvelteKit application running version 2.70.1 or earlier that reaches the negotiate() function with an Accept header crafted to lack a MIME-type slash separator can trigger the vulnerability. No authentication, session, or special application state is required - the CVSS vector (PR:N, UI:N, AV:N, AC:L) confirms unauthenticated remote exploitation against any reachable SvelteKit instance. Exploitation is limited in practice where the deployment platform enforces header size caps (e.g., nginx defaults cap header values at approximately 8 KB), which bounds the maximum input length and therefore the worst-case CPU cost per request. Applications deployed without header size restrictions, or behind infrastructure with raised or absent limits, face the full impact. There is no non-default configuration requirement - the vulnerable code path is exercised on ordinary content negotiation for any request.

Impact

The CVSS 3.1 score of 5.3 (Medium) with vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L accurately captures the nature of this flaw: unauthenticated, low-complexity, network-reachable, with impact limited to availability. There is no confidentiality or integrity exposure. This is not in CISA KEV, and no standalone POC exploit has been identified, though the attack primitive is trivially constructed from the public advisory and commit diff - any HTTP client capable of setting custom headers is sufficient. The GHSA advisory explicitly notes that default header length limits on most production platforms (reverse proxies, load balancers) significantly constrain the maximum input length and therefore the worst-case backtracking cost, reducing practical severity for well-configured deployments. Organizations running SvelteKit directly exposed without header size controls face the highest real-world risk. Overall this is a genuine but moderate-priority issue: patch promptly, but not an emergency for teams behind standard reverse proxies.

Exploit ScenarioDerived

An unauthenticated attacker sends a stream of HTTP requests to any SvelteKit application endpoint, each carrying a crafted Accept header consisting of a long repeated character sequence without a forward-slash (e.g., 'a' repeated thousands of times), which the vulnerable regex attempts to match at every position before failing. Each such request occupies a CPU core for a disproportionately long time; a modest volume of concurrent requests can saturate available CPU and deny service to legitimate users without any authentication or prior access to the application.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 07, 2026

Remote denial-of-service in @sveltejs/kit (versions ≤ 2.70.1) is achievable by any unauthenticated attacker who sends a specially crafted Accept header, triggering quadratic backtracking in the framework's content negotiation regex and causing excessive CPU consumption. The CVSS vector (AV:N/AC:L/PR:N/UI:N) confirms zero-barrier remote exploitation against default SvelteKit deployments, though real-world impact is partly mitigated where platform-level header length limits are in place. No public exploit code has been identified at time of analysis, and this vulnerability is not listed in CISA KEV.

RemediationAI

Upgrade @sveltejs/kit to version 2.70.2 or later; this is the vendor-confirmed fix as documented in the GitHub Security Advisory GHSA-29g2-3rmr-qm68 and release tag at https://github.com/sveltejs/kit/releases/tag/@sveltejs/kit@2.70.2. The patch (https://github.com/sveltejs/kit/commit/82712fc02c24b1dcf5b25d7a52129cd8455f04f5) anchors the content negotiation regex with ^, eliminating quadratic backtracking at negligible functional cost. If an immediate upgrade is not possible, configure upstream reverse proxies or load balancers to enforce strict Accept header size limits - for example, nginx's large_client_header_buffers directive or equivalent limits in AWS ALB or Cloudflare; the GHSA advisory identifies this as an existing mitigating factor on most platforms. Note that header size restriction is a compensating control only: a moderately sized malformed header below typical platform limits may still cause measurable CPU impact, so it does not substitute for patching.

Affected VersionsENISA

kit < 2.70.2

Affected Packages

npm @sveltejs/kit fix: 2.70.2
euvd kit fix: 2.70.2

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's request handling uses a negotiate() function in packages/kit/src/utils/http.js to parse content negotiation headers such as Accept. The vulnerable regex - /([^/ ]+)/([^; ]+)[ ]*(?:;[ ]*q=([0-9.]+))?/ - lacked a start anchor (^), causing the JavaScript regex engine to attempt a match at every character position within the input string. When the input is a long string that never satisfies the pattern (e.g., repeated characters without a MIME-type slash separator), the engine backtracks quadratically - O(n²) - with respect to the input length n. This is the canonical ReDoS pattern classified under CWE-1333 (Inefficient Regular Expression Complexity). The fix, confirmed by commit diff, adds a ^ anchor to force a single-pass evaluation. The affected CPE is cpe:2.3:a:sveltejs:kit:*:*:*:*:*:*:*:* covering all kit versions up to and including 2.70.1.

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

Vendor (GitHub_M) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 5.3 MEDIUM

Network-reachable with no privileges or user interaction required; impact is availability-only with partial degradation, matching the ReDoS DoS class and GHSA description.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Aug 07, 2026 - 18:02 EUVD

DescriptionCVE.org

SvelteKit is a framework for rapidly developing robust, performant web applications using Svelte. Prior to 2.70.2, the content negotiation header parser used by SvelteKit's request handling (for headers such as Accept) uses a regular expression vulnerable to quadratic backtracking, so a maliciously crafted header value can cause excessive CPU consumption and degrade or deny service. Version 2.70.2 fixes the issue.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 8 npm packages depend on @sveltejs/kit (6 direct, 3 indirect)

Ecosystem-wide dependent count for version 2.70.2.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Medium
popular Node.js/Svelte web framework, widely used but not ubiquitous
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Kit

View all
CVE-2024-23641 HIGH POC
7.5 Jan 24

SvelteKit is a web development kit. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authe

CVE-2025-67647 CRITICAL
9.1 Jan 15

SvelteKit 2.19.0-2.49.4 has SSRF/DoS affecting applications with prerendered routes. Can be exploited to make the server

CVE-2026-82259 HIGH
8.7 Aug 28

Denial of service in SvelteKit versions 2.49.0 through 2.53.2 is achievable by unauthenticated remote attackers who subm

CVE-2026-82261 HIGH
8.7 Aug 28

CPU exhaustion in SvelteKit's experimental remote form deserialization endpoint allows unauthenticated remote attackers

CVE-2026-82260 HIGH
8.7 Aug 28

Memory exhaustion in @sveltejs/kit versions 2.49.0 through 2.52.1 allows unauthenticated remote attackers to crash the s

CVE-2026-40073 HIGH
8.2 Apr 10

Request body size limit bypass in SvelteKit adapter-node allows unauthenticated attackers to submit oversized payloads,

CVE-2026-22803 HIGH
7.5 Jan 15

SvelteKit versions 2.49.0 through 2.49.4 are vulnerable to denial-of-service attacks through the experimental form remot

CVE-2026-82256 MEDIUM
6.9 Aug 28

Uncontrolled payload size acceptance in SvelteKit's remote form function handler allows unauthenticated remote attackers

CVE-2026-40074 MEDIUM
6.3 Apr 10

SvelteKit versions prior to 2.57.1 are vulnerable to denial of service when the redirect() function is called from the h

CVE-2026-82258 MEDIUM
5.9 Aug 28

Cross-user data disclosure in SvelteKit (npm/@sveltejs/kit versions 2.38.0 through 2.60.0) stems from a race condition i

CVE-2026-82257 MEDIUM
5.3 Aug 28

Prototype pollution in SvelteKit's remote form functions allows network-accessible attackers to remove methods from Java

CVE-2026-105421 MEDIUM
5.3 Oct 05

Unauthenticated remote attackers can tamper with limited plugin-controlled data in Kit (formerly ConvertKit) for WooComm

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