
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-22803 is a memory exhaustion (memory amplification) denial-of-service vulnerability in SvelteKit's experimental Remote Functions binary form deserializer. It affects @sveltejs/kit versions 2.49.0 through 2.49.4 — specifically applications with experimental.remoteFunctions enabled that expose a reachable Remote Form endpoint. The vulnerability was published on January 15, 2026, with a patch released the same day. It carries a CVSS v3.1 base score of 7.5 (High) and a CVSS v4.0 base score of 8.2 (High) (GitHub Advisory, Feedly).
The root cause is improper resource allocation without size validation (CWE-789: Memory Allocation with Excessive Size Value; CWE-770: Allocation of Resources Without Limits or Throttling) in the deserialize_binary_form function within packages/kit/src/runtime/form-utils.js. When a form is submitted to a Remote Function endpoint, SvelteKit encodes data in a custom binary format (application/x-sveltekit-formdata) where the first 7 bytes (header) encode the data length. The vulnerable code eagerly pre-allocates a Uint8Array buffer of the size specified in the header (data_length) before the body has been fully received — meaning an attacker can send only the 8-byte header with an arbitrarily large data_length value, then stall the connection body, causing the server to hold a large unreleased memory allocation. The fix adds validation of the Content-Length header against the declared data_length before any buffer allocation occurs, and defers buffer construction until all chunks are received (GitHub Advisory, Patch Commit).
Successful exploitation causes denial of service through server-side memory exhaustion. An unauthenticated attacker can repeatedly open connections and stall them, each holding a large memory allocation, until the server runs out of available memory and becomes unresponsive. The impact is limited to availability — there is no confidentiality or integrity impact, and the vulnerability does not enable code execution, data exfiltration, or lateral movement. Only SvelteKit applications with experimental.remoteFunctions enabled and at least one publicly reachable Remote Form endpoint are affected (GitHub Advisory, Feedly).
No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation at this time. The EPSS score is approximately 0.04%, reflecting low near-term exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Despite requiring no authentication and having low attack complexity, exploitation is constrained by the prerequisite that the target application must have the experimental remoteFunctions feature enabled and expose a reachable Remote Form endpoint (Feedly).
experimental.remoteFunctions enabled. Look for HTTP endpoints accepting Content-Type: application/x-sveltekit-formdata POST requests, which indicate exposed Remote Form endpoints.0x00), followed by 4 bytes encoding a very large data_length value (e.g., 0xFFFFFFFF ≈ 4 GB) in little-endian format, followed by 2 bytes for file_offsets_length (set to 0x0000).Content-Type: application/x-sveltekit-formdata and the crafted 7-byte header as the start of the body. Do not send the remaining body bytes — stall or slow-drip the connection to keep it open.Uint8Array buffer equal to the declared data_length, holding it in memory until the connection times out.Content-Type: application/x-sveltekit-formdata) from one or more source IPs; connections that remain open for extended periods without completing body transmission; unusually large declared Content-Length values in POST requests to SvelteKit endpoints.application/x-sveltekit-formdata content type; Node.js process logs showing out-of-memory errors or heap allocation failures; HTTP 503 or connection timeout errors increasing sharply.ENOMEM or JavaScript heap out-of-memory errors.The primary remediation is to upgrade @sveltejs/kit to version 2.49.5 or later, which adds Content-Length validation against the declared data_length before any buffer allocation and defers buffer construction until all data chunks are received. Applications using the Node.js adapter should also upgrade @sveltejs/adapter-node to version 5.5.1 or later. If immediate patching is not possible, disable the experimental.remoteFunctions feature in the SvelteKit configuration. As a defense-in-depth measure, configure request size limits, connection timeouts, and concurrent connection limits at the reverse proxy or load balancer level to reduce the impact of memory exhaustion attacks (SvelteKit Release 2.49.5, Adapter-Node Release 5.5.1, GitHub Advisory).
The Svelte team published an official blog post covering CVEs affecting the Svelte ecosystem, including this vulnerability (Svelte Blog). The advisory was discussed briefly on Hacker News. No significant independent researcher commentary or broader media coverage has been identified, consistent with the vulnerability's narrow scope (experimental feature only) and the availability of a same-day patch.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."