SvelteKit Superforms
CVE-2025-62381
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted multipart form POST
-
DeliveryInject __superform_json with __superform_file_ keys
-
ExploitPollute Object.prototype via setPaths traversal
-
ExecutionTrigger DoS or type confusion
-
ImpactAchieve RCE via downstream gadget
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The target application must process form submissions through superforms' superValidate()/parseFormData() flow (standard, documented usage), and the endpoint must accept a user-supplied multipart body containing a __superform_json field plus __superform_file_/__superform_files_ path keys - the code path that feeds attacker-controlled property paths and values into setPaths(). Per the CVSS vector (PR:N/UI:N) exploitation is unauthenticated and requires no user interaction, so any reachable form endpoint on v2.27.3 or earlier is exposed. LIMITING FACTORS: reliable prototype pollution yields DoS/type confusion against default configurations, but escalation to remote code execution is NOT automatic - it requires a suitable prototype-pollution gadget to exist in the downstream application or its dependencies, which is why the vendor assigned AC:H and AT:P (a non-guaranteed attack requirement). |
| Impact | The vendor-supplied CVSS 4.0 vector (8.3, High) shows AV:N and PR:N/UI:N - network-reachable and unauthenticated - but deliberately tempers this with AC:H and AT:P, signalling that reliable high-severity exploitation carries meaningful complexity and attack requirements. This is consistent with the impact metrics: VA:H (availability) is the one concrete high impact, while VC:L and VI:L (confidentiality/integrity low) reflect that the headline 'RCE' is conditional, not guaranteed. EPSS corroborates a measured risk: 0.55% probability at the 44th percentile is low-to-moderate, indicating no mass exploitation pressure, and the CVE is NOT in CISA KEV, so there is no evidence of active exploitation. A proof-of-concept is documented in the GHSA advisory (showing pollution of Object.prototype.toString), so exploit knowledge is public even though weaponized use is not observed. Net assessment: this is a legitimate patch-promptly issue for internet-exposed SvelteKit applications - prototype pollution reliably yields DoS/type confusion against default usage - but it is not an emergency: RCE depends on downstream gadget chains (reflected in AC:H/AT:P), EPSS is low, there is no KEV listing, and the affected product is a framework-specific library rather than ubiquitous infrastructure. |
| Exploit ScenarioDerived | An unauthenticated attacker submits a crafted multipart form POST to any endpoint that validates input with superforms' superValidate(), embedding a malicious __superform_json payload plus attacker-controlled __superform_file_/__superform_files_ path keys that cause setPaths() to write into Object.prototype. This pollutes shared object state across the Node process, reliably causing denial of service or type confusion, and - in applications containing a suitable gadget - potentially remote code execution. A working proof-of-concept polluting Object.prototype.toString is published in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Prototype pollution in sveltekit-superforms 2.27.3 and earlier allows unauthenticated remote attackers to inject string and array properties into Object.prototype by submitting crafted multipart form data to any endpoint that parses forms via superValidate(). The vendor-supplied CVSS 4.0 score is 8.3 (High) with AV:N and PR:N/UI:N but tempered by AC:H and AT:P, and the assessed CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H) reflects the same trade-off: reliable pollution yields denial of service and type confusion against default configurations, while escalation to remote code execution is not automatic and depends on a suitable prototype-pollution gadget in the downstream application or its dependencies. No public exploit code or active exploitation has been identified at time of analysis (EPSS 0.55%, 44th percentile), and a vendor patch is available in 2.27.4.
RemediationAI
Vendor-released patch: upgrade sveltekit-superforms to version 2.27.4 (or later), which fixes the issue by adding a prototype-injection guard in src/lib/traversal.ts that throws when a resolved path contains __proto__ or prototype; install with your package manager, e.g. npm install sveltekit-superforms@2.27.4, and redeploy. The fix commit is https://github.com/ciscoheat/sveltekit-superforms/commit/4a1310dd1a94176bb22036662c530dad48059ca4 and the advisory is https://github.com/ciscoheat/sveltekit-superforms/security/advisories/GHSA-hwmc-4c8j-xxj7. If immediate upgrade is not possible, apply compensating controls: at the reverse proxy/WAF or in a SvelteKit hook, strip or reject any incoming form key containing __proto__, prototype, or constructor, and block requests that include __superform_file_ or __superform_files_ keys with suspicious path segments; this removes the injection vector but breaks superforms' native file-upload restoration and the __superform_json transport feature, so legitimate file uploads handled by that mechanism would need to be reimplemented or temporarily disabled. Because the polluted surface is Object.prototype, you can also harden the runtime by freezing prototypes (e.g., Object.freeze(Object.prototype)) or creating lookup objects with Object.create(null); Object.freeze of Object.prototype can break third-party libraries that legitimately extend prototypes, so test before deploying. Finally, since RCE requires a downstream gadget, review dependencies that read prototype properties for pollution-to-execution chains and keep them patched.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes, i.e. prototype pollution) inside the parseFormData function of formData.js in the npm package sveltekit-superforms, a SvelteKit form-validation library. During normal, documented usage the server calls superValidate(request, adapter(schema)), which routes through parseRequest and then parseFormData. When the submitted form body contains a __superform_json field, its value is deserialized (with optional transport decoding) and, if the result is an object, the parser iterates over every other form key looking for the prefixes __superform_file_ and __superform_files_. It strips the prefix, splits the remainder into a nested path, and passes it with the attacker-supplied value into setPaths() (implemented via traversePath in src/lib/traversal.ts), performing an arbitrary-depth property assignment on the deserialized object. Because both the target path and the assigned value originate from user input, keys such as __superform_file___proto__.foo resolve to writes against Object.prototype rather than the intended data object, polluting the shared global prototype with attacker-chosen string or array values. The upstream fix in version 2.27.4 adds an explicit guard in traversal.ts that throws when the resolved path contains the substrings __proto__ or prototype, aborting the traversal before any assignment occurs. Downstream impact ranges from denial of service and type confusion in applications that read polluted properties, to potential RCE where a downstream gadget chain (for example in a templating, serialization, or child_process code path) consumes a polluted key. CPE data identifies the affected component as npm/sveltekit-superforms.
Know when Sveltekit 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:N/UI:N/VC:L/VI:L/VA:H/SC:L/SI:L/SA:L
Network-reachable unauthenticated form endpoint (AV:N/PR:N/UI:N), but reliable severe impact needs a downstream gadget so AC:H; DoS is the dependable high-availability impact while C/I are low.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
sveltekit-superforms makes SvelteKit forms a pleasure to use. sveltekit-superforms v2.27.3 and prior are susceptible to a prototype pollution vulnerability within the parseFormData function of formData.js. An attacker can inject string and array properties into Object.prototype, leading to denial of service, type confusion, and potential remote code execution in downstream applications that rely on polluted objects. This vulnerability is fixed in 2.27.4.
Executive ViewAI
A high-severity prototype pollution flaw in sveltekit-superforms 2.27.3 and earlier exposes organizations running affected SvelteKit applications to unauthenticated remote denial-of-service and type-confusion attacks, with a contingent path to remote code execution if a suitable gadget exists in the application or its dependencies. Because the vulnerable library parses multipart form data on public-facing endpoints, any internet-accessible deployment using superValidate() is in scope, making prompt inventory and remediation critical even though no public exploit identified at time of analysis. Vendor-released patch: 2.27.4; leadership should prioritize upgrading affected services to eliminate the risk.
Apply vendor patch.
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
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
SvelteKit is a web development framework. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, no
The SvelteKit framework offers developers an option to create simple REST APIs. Rated high severity (CVSS 8.8), this vul
SvelteKit is a framework for rapidly developing robust, performant web applications using Svelte. Rated low severity (CV
SvelteKit is a framework for rapidly developing robust, performant web applications using Svelte. Rated low severity (CV
NVD
CVE.org
EPSS
GitHub
Exploit-DB