defu: Prototype pollution via `__proto__` key in defaults argument
Platform
nodejs
Component
defu
Opgelost in
6.1.6
6.1.5
Prototype Pollution is een beveiligingslek waarbij een aanvaller de prototype van een JavaScript object kan manipuleren, waardoor eigenschappen kunnen worden toegevoegd of overschreven. In het geval van CVE-2026-35209 kan dit gebeuren wanneer ongezuiverde gebruikersinvoer wordt doorgegeven aan de defu() functie. Deze kwetsbaarheid treft versies van defu die ouder zijn dan 6.1.5 en er is een patch beschikbaar.
Impact en Aanvalsscenarioswordt vertaald…
Prototype pollution occurs when an attacker can modify the prototype of JavaScript objects, effectively altering the behavior of all objects inheriting from that prototype. In the context of defu, an attacker can inject a proto key into user-supplied data (like JSON request bodies or configuration files) and pass it to the defu() function. This allows them to override intended default values, potentially granting unauthorized access or modifying application logic. For example, an attacker could set isAdmin: true to bypass access controls. The blast radius extends to any part of the application relying on the defu function and its default values, making it a significant security concern.
Uitbuitingscontextwordt vertaald…
This vulnerability was publicly disclosed on 2026-04-04. While no active exploitation campaigns have been publicly reported, the ease of exploitation and the potential impact make it a high-priority concern. The vulnerability is not currently listed on CISA KEV. Public proof-of-concept code is likely to emerge, increasing the risk of widespread exploitation.
Wie Loopt Risicowordt vertaald…
Applications built with Node.js that utilize the defu package for managing configuration or default values are at risk. This includes web applications, APIs, and backend services. Specifically, applications that parse user-supplied JSON data or load configuration files from untrusted sources are particularly vulnerable.
Detectiestappenwordt vertaald…
• nodejs / server:
npm audit defu• nodejs / supply-chain:
find . -name 'package.json' -print0 | xargs -0 grep '"defu": ["^6.1.5"']• generic web: Inspect application logs for unusual object properties or unexpected behavior after processing user input. Look for instances where default values are being unexpectedly overridden.
Aanvalstijdlijn
- Disclosure
disclosure
Dreigingsinformatie
Exploit Status
EPSS
0.04% (12% percentiel)
CISA SSVC
CVSS-vector
Wat betekenen deze metrics?
- Attack Vector
- Netwerk — op afstand uitbuitbaar via internet. Geen fysieke of lokale toegang vereist.
- Attack Complexity
- Laag — geen speciale voorwaarden vereist. Betrouwbaar uitbuitbaar.
- Privileges Required
- Geen — geen authenticatie vereist om te exploiteren.
- User Interaction
- Geen — automatische en stille aanval. Slachtoffer doet niets.
- Scope
- Ongewijzigd — impact beperkt tot het kwetsbare component.
- Confidentiality
- Geen — geen vertrouwelijkheidsimpact.
- Integrity
- Hoog — aanvaller kan alle gegevens schrijven, aanpassen of verwijderen.
- Availability
- Geen — geen beschikbaarheidsimpact.
Getroffen Software
Pakketinformatie
- Laatste update
- 6.1.7recent
Zwakheidsclassificatie (CWE)
Tijdlijn
- Gereserveerd
- Gepubliceerd
- Gewijzigd
- EPSS bijgewerkt
Mitigatie en Workaroundswordt vertaald…
The primary mitigation for CVE-2026-35209 is to upgrade to defu version 6.1.5 or later, which includes a fix for the vulnerability. If upgrading is not immediately feasible, implement strict input sanitization on any user-supplied data passed to defu(). This involves validating and filtering input to prevent the injection of malicious proto payloads. Consider using a dedicated input validation library to ensure comprehensive protection. Additionally, review application code that utilizes defu to identify potential areas where prototype pollution could be exploited. After upgrading, confirm the fix by attempting to trigger the prototype pollution vulnerability with a crafted payload and verifying that the default values are not overridden.
Hoe te verhelpenwordt vertaald…
Actualiza la librería 'defu' a la versión 6.1.5 o superior para mitigar la vulnerabilidad de contaminación de prototipos. Esto se soluciona reemplazando `Object.assign({}, defaults)` con object spread (`{ ...defaults }`), que evita la invocación del setter `__proto__`.CVE Beveiligingsnieuwsbrief
Kwetsbaarheidsanalyses en kritieke waarschuwingen direct in uw inbox.
Veelgestelde vragen
Wat is prototype pollution in de context van CVE-2026-35209?
Prototype pollution is een kwetsbaarheid waarbij een aanvaller de prototype van een JavaScript object kan manipuleren, waardoor eigenschappen kunnen worden toegevoegd of overschreven. In dit geval kan een kwaadwillende payload met een proto sleutel de standaardwaarden in defu overschrijven.
Ben ik kwetsbaar voor CVE-2026-35209?
Ja, als u een versie van defu gebruikt die ouder is dan 6.1.5, dan bent u kwetsbaar voor deze prototype pollution kwetsbaarheid.
Hoe kan ik CVE-2026-35209 oplossen?
Update defu naar versie 6.1.5 of hoger om deze kwetsbaarheid te verhelpen. Dit zorgt ervoor dat de prototype pollution kwetsbaarheid is verholpen.
Is jouw project getroffen?
Upload je dependency-bestand en kom direct te weten of deze en andere CVEs jou raken.