Platform
nodejs
Component
lodash
Opgelost in
4.18.0
4.18.0
4.18.0
4.18.0
4.18.0
CVE-2026-2950 beschrijft een prototype pollution kwetsbaarheid in de .unset en .omit functies van Lodash. Deze kwetsbaarheid maakt het mogelijk voor aanvallers om eigenschappen van ingebouwde prototypes, zoals Object.prototype, Number.prototype en String.prototype, te verwijderen, wat kan leiden tot onverwacht gedrag van JavaScript-code. De kwetsbaarheid treft Lodash versies 4.17.23 en eerder. Een patch is beschikbaar in Lodash 4.18.0.
CVE-2026-2950 heeft betrekking op Lodash-versies 4.17.23 en eerder, waarbij een prototype pollution-kwetsbaarheid wordt geïntroduceerd in de functies .unset en .omit. Hoewel de correctie die is geïmplementeerd voor CVE-2025-13465 erop gericht was om dit probleem te verzachten, beschermde deze alleen tegen string-sleutelwaarden. Aanvallers kunnen deze controle omzeilen door array-omhulde padsegmenten door te geven. Dit maakt het mogelijk om eigenschappen te verwijderen van ingebouwde prototypes, zoals Object.prototype, Number.prototype en String.prototype, waardoor de stabiliteit en veiligheid van applicaties die Lodash gebruiken in gevaar komt. De ernst van de kwetsbaarheid wordt beoordeeld op 6,5 volgens CVSS. Prototype manipulatie kan leiden tot onverwacht gedrag, runtime-fouten en mogelijk tot de uitvoering van kwaadaardige code.
De kwetsbaarheid wordt uitgebuit door .unset of .omit een pad te verstrekken dat bestaat uit een array van sleutels. Dit pad maakt, wanneer het onjuist wordt verwerkt, het mogelijk om eigenschappen op object-, nummer- of stringprototypen te wijzigen of te verwijderen. Een aanvaller zou bijvoorbeeld de eigenschap toString van Object.prototype kunnen verwijderen, wat zou leiden tot fouten bij de conversie van objecten naar strings in de hele applicatie. Exploitatie is relatief eenvoudig en vereist geen speciale privileges, waardoor het risico op wijdverspreide aanvallen toeneemt. De exploitatiecontext hangt af van de applicatie die Lodash gebruikt en het vermogen van de aanvaller om de invoer van de kwetsbare functies te controleren.
Applications built with Node.js that utilize Lodash, particularly those that accept user-supplied data and pass it directly to .unset or .omit functions, are at significant risk. Projects relying on older versions of Lodash within complex JavaScript ecosystems are also vulnerable, as are developers who have not kept their dependencies up-to-date.
• nodejs:
npm list lodashThis command will list installed Lodash versions. Check if the version is below 4.18.0. • nodejs:
find node_modules -name "lodash.js" -print0 | xargs -0 grep -i "_.unset" -lThis searches for files containing .unset within the nodemodules directory, indicating potential usage of the vulnerable function.
• generic web:
Inspect application logs for unusual errors or exceptions related to prototype properties. Look for patterns suggesting property deletion or modification.
• generic web:
Review application code for instances of .unset and .omit where user-supplied input is used to construct the path segments.
disclosure
Exploit Status
EPSS
0.06% (17% percentiel)
CISA SSVC
CVSS-vector
De aanbevolen oplossing is om te upgraden naar Lodash-versie 4.18.0 of hoger. Deze versie bevat een correctie die de prototype pollution-kwetsbaarheid aanpakt door alle sleuteltypen correct te valideren, inclusief die welke in arrays zijn gewikkeld. Als een upgrade naar de nieuwste versie niet onmiddellijk mogelijk is, wordt een grondige beoordeling van de code die .unset en .omit gebruikt aanbevolen, op zoek naar patronen die vatbaar zijn voor exploitatie. Het implementeren van aanvullende validaties op de invoer van deze functies kan helpen om het risico te beperken, hoewel het geen volledige oplossing is. Het is ook cruciaal om applicaties te monitoren op abnormaal gedrag.
Actualice la biblioteca lodash a la versión 4.18.0 o superior. Esta versión contiene la corrección para la vulnerabilidad de prototype pollution. Ejecute `npm install lodash@latest` o `yarn add lodash@latest` para actualizar.
Kwetsbaarheidsanalyses en kritieke waarschuwingen direct in uw inbox.
Het is een kwetsbaarheid die het mogelijk maakt om eigenschappen van objectprototypen te wijzigen, wat alle instanties van dat objecttype beïnvloedt.
Het kan leiden tot onverwacht gedrag, runtime-fouten en zelfs de uitvoering van kwaadaardige code mogelijk maken.
Voer een grondige codebeoordeling uit en overweeg aanvullende validaties op de invoer van .unset en .omit te implementeren.
Er zijn statische code-analysemiddelen die kunnen helpen bij het identificeren van het gebruik van kwetsbare functies en verdachte code patronen.
Houd uw afhankelijkheden up-to-date, voer periodieke veiligheidsbeoordelingen uit en volg veilige codeerbest practices.
Upload je dependency-bestand en kom direct te weten of deze en andere CVEs jou raken.