Platform
nodejs
Component
json-schema
Opgelost in
0.3.1
0.4.0
CVE-2021-3918 beschrijft een Prototype Pollution kwetsbaarheid in de json-schema bibliotheek. Deze kwetsbaarheid stelt aanvallers in staat om eigenschappen van het prototype object te manipuleren, wat kan leiden tot onvoorspelbaar gedrag en mogelijk tot code-uitvoering. De kwetsbaarheid treft versies van json-schema vóór 0.4.0. Een patch is beschikbaar in versie 0.4.0.
Prototype Pollution is een type kwetsbaarheid waarbij een aanvaller de eigenschappen van het prototype object van een JavaScript object kan wijzigen. In het geval van json-schema kan dit leiden tot het overschrijven van bestaande functies of het toevoegen van nieuwe, kwaadaardige functies. Dit kan vervolgens worden misbruikt om de applicatie te compromitteren, gevoelige informatie te stelen of zelfs code uit te voeren. De impact is aanzienlijk, vooral in omgevingen waar json-schema wordt gebruikt voor validatie of deserialisatie van data, omdat een aanvaller de data kan manipuleren om de validatie te omzeilen en kwaadaardige code in te voegen. Dit is vergelijkbaar met kwetsbaarheden die in andere JavaScript bibliotheken zijn aangetroffen, waar prototype manipulatie heeft geleid tot RCE.
CVE-2021-3918 werd publiekelijk bekendgemaakt op 19 november 2021. Er zijn publieke proof-of-concept exploits beschikbaar, wat de kwetsbaarheid relatief eenvoudig te exploiteren maakt. De kwetsbaarheid is opgenomen in het CISA KEV catalogus, wat de urgentie van mitigatie onderstreept. Er zijn geen bekende actieve campagnes gerapporteerd, maar de beschikbaarheid van PoCs maakt het een aantrekkelijk doelwit voor aanvallers.
Exploit Status
EPSS
1.26% (79% percentiel)
CVSS-vector
De primaire mitigatie voor CVE-2021-3918 is het upgraden van de json-schema bibliotheek naar versie 0.4.0 of hoger. Indien een directe upgrade niet mogelijk is, kan het implementeren van input validatie en sanitatie helpen om de impact van Prototype Pollution te verminderen. Dit kan inhouden dat alle input die door json-schema wordt verwerkt, zorgvuldig wordt gevalideerd en gesanitiseerd om te voorkomen dat kwaadaardige data het prototype object kan beïnvloeden. Het gebruik van een Web Application Firewall (WAF) met regels die prototype manipulatie detecteren kan ook een extra beveiligingslaag bieden. Na de upgrade, controleer de applicatie op onverwacht gedrag en valideer dat de kwetsbaarheid is verholpen.
Werk de json-schema bibliotheek bij naar een versie later dan 0.3.0. Dit zal de Prototype Pollution kwetsbaarheid oplossen. U kunt de afhankelijkheid bijwerken met npm of yarn.
Kwetsbaarheidsanalyses en kritieke waarschuwingen direct in uw inbox.
Prototype Pollution is an attack that allows an attacker to modify properties on the Object.prototype, impacting all object instances in JavaScript.
If you are using kriszyp/json-schema in a version prior to 0.4.0, your application is vulnerable. Review your code to identify where the library is used and if you process JSON data from untrusted sources.
Implementing additional validations on JSON input can help reduce the risk, but it is not a complete solution. Monitoring application logs is also important.
JSON schemas that attempt to modify properties of the Object.prototype, such as proto, constructor, or custom properties.
You can find more information in the NIST vulnerability database: https://nvd.nist.gov/vuln/detail/CVE-2021-3918
Upload je dependency-bestand en kom direct te weten of deze en andere CVEs jou raken.