☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Svelte logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.9 🐛 CWE-1321
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-57820

CVE-2025-57820 Prototype Pollution in Svelte
📅 PUBLISHED: 2025-08-26 22:33 UTC 🔄 UPDATED: 2026-09-23 20:16 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.37%
👁️
0.37% probability
9.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
7.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-57820 is a prototype pollution vulnerability in the Svelte devalue library, a utility for serializing and deserializing JavaScript values. Prior to version 5.3.2, the devalue.parse function fails to validate that object keys are numeric when processing a string representation of an object. An attacker can craft a malicious string that includes a __proto__ property, which, when parsed, can pollute the prototype of all objects in the application. This can lead to arbitrary code execution, denial of service, or property injection. The vulnerability has a CVSS score of 0.0 (likely unassigned or placeholder), but based on the impact, it is critical. No public exploit code or proof-of-concept is available at this time.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the devalue npm package, which is a dependency of Svelte and other JavaScript projects. Organizations using Svelte or any project that depends on devalue should immediately update to version 5.3.2 or later. The package is widely used in the JavaScript ecosystem, making this a supply chain risk. Attackers could inject malicious payloads into applications that parse untrusted data with devalue.parse.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely by sending a crafted string.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): None (N) – No user action required.
  • Scope (S): Unchanged (U) – The vulnerable component and the affected component are the same.
  • Confidentiality (C): High (H) – Prototype pollution can lead to data exposure.
  • Integrity (I): High (H) – Attackers can modify object properties.
  • Availability (A): High (H) – Can cause denial of service or application crashes.

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Base Score: 9.8 (Critical)

Deep Dive & Mechanics

The devalue library is used to serialize JavaScript values into a string format and parse them back. The devalue.parse function is the deserialization counterpart. The vulnerability lies in the parsing logic: when the parser encounters a string representation of an object, it does not validate that the keys are numeric indices. An attacker can craft a string like:

{"__proto__":{"polluted":"true"}}

When parsed, this can set Object.prototype.polluted to "true", polluting the prototype of all objects in the runtime. This is a classic prototype pollution vulnerability (CWE-1321). The fix in version 5.3.2 ensures that only numeric indices are allowed for array-like structures, preventing the __proto__ key from being treated as a valid property.

Vulnerable vs. Patched Code

Vulnerable Code (prior to 5.3.2):

// devalue/src/parse.js (simplified)
function parse(str) {
  // ... parsing logic
  if (typeof key === 'string' && key !== '__proto__') {
    // No check for numeric index
    obj[key] = value;
  }
}

Patched Code (5.3.2):

// devalue/src/parse.js (simplified)
function parse(str) {
  // ... parsing logic
  if (typeof key === 'string' && key !== '__proto__' && !isNaN(Number(key))) {
    obj[key] = value;
  }
}

The patched version adds a check !isNaN(Number(key)) to ensure that only numeric keys are assigned, preventing prototype pollution via __proto__.

Exploitation & Lab Setup

Red Team

To exploit this vulnerability, an attacker would need to inject a malicious string into an application that uses devalue.parse on untrusted input. For example:

const devalue = require('devalue');
const malicious = '{"__proto__":{"polluted":"true"}}';
const obj = devalue.parse(malicious);
// Now Object.prototype.polluted === "true"

This can be used to override global properties, inject malicious functions, or cause denial of service.

Lab Setup:

  1. Install vulnerable version: npm install devalue@5.3.1
  2. Create a Node.js script that parses user input with devalue.parse.
  3. Send the malicious payload via HTTP request or other input vector.
  4. Observe prototype pollution.

Blue Team

To detect exploitation attempts:

  • Monitor for strings containing __proto__ in application logs.
  • Use runtime protection libraries like safe-parse or json5 with prototype pollution guards.
  • Implement input validation to reject objects with __proto__ keys.

Indicators of Compromise (IOCs)

  • Network: HTTP requests containing __proto__ in JSON payloads.
  • File: Log entries showing Object.prototype modifications.
  • Process: Node.js processes with unexpected global property changes.
  • Registry: (N/A for JavaScript)

Detection Engineering

YARA Rule

rule CVE_2025_57820_Prototype_Pollution {
    meta:
        description = "Detects prototype pollution attempts via devalue.parse"
        author = "Valters IT"
        date = "2025-01-01"
        reference = "CVE-2025-57820"
    strings:
        $proto = "__proto__"
        $devalue = "devalue"
    condition:
        $proto and $devalue
}

Sigma Rule

title: CVE-2025-57820 Prototype Pollution via devalue.parse
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit prototype pollution in devalue library
author: Valters IT
logsource:
    category: application
    product: nodejs
detection:
    selection:
        EventID: 4104
        ScriptBlockText|contains: '__proto__'
    condition: selection
falsepositives:
    - Legitimate use of __proto__ in debugging
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-57820 Prototype Pollution Attempt"; flow:to_server; content:"__proto__"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Update devalue to version 5.3.2 or later.
  2. Short-term: If immediate update is not possible, implement input validation to reject any JSON containing __proto__ keys.
  3. Long-term: Use a safer deserialization library or implement a custom parser that explicitly blocks prototype pollution.
  4. Monitoring: Deploy detection rules (YARA, Sigma, Suricata) to identify exploitation attempts.
  5. Patch Management: Ensure all dependencies are regularly updated and scanned for vulnerabilities.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-57820/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.