Plateforme
nodejs
Composant
json-schema
Corrigé dans
0.3.1
0.4.0
CVE-2021-3918 est une vulnérabilité de pollution de prototype affectant la bibliothèque json-schema. Elle permet une modification non contrôlée des attributs de prototype d'objet, pouvant mener à des comportements inattendus ou à l'exécution de code arbitraire. Cette vulnérabilité affecte les versions antérieures à 0.4.0 de json-schema. La version 0.4.0 corrige ce problème.
La vulnérabilité CVE-2021-3918 dans la bibliothèque kriszyp/json-schema, pour les versions antérieures à 0.4.0, expose les applications aux attaques de 'Pollution du Prototype' (Prototype Pollution). Cette vulnérabilité permet à un attaquant de modifier des propriétés sur l'objet Object.prototype, impactant potentiellement toutes les instances d'objets dans JavaScript. Cela peut entraîner un comportement inattendu, des erreurs d'application, voire l'exécution de code malveillant si ces propriétés polluées sont utilisées dans la logique critique de l'application. Le score CVSS de 9.8 indique un risque critique, signifiant une exploitation relativement facile et un impact potentiellement dévastateur. La vulnérabilité découle de la façon dont la bibliothèque traite les schémas JSON qui permettent la modification des propriétés du prototype. La mise à niveau vers la version 0.4.0 ou ultérieure est cruciale pour atténuer ce risque.
La vulnérabilité peut être exploitée en envoyant des schémas JSON malveillants à la bibliothèque kriszyp/json-schema. Ces schémas sont conçus pour modifier les propriétés de l'objet Object.prototype. L'attaquant doit avoir le contrôle sur l'entrée JSON transmise à la bibliothèque. L'exploitation est plus probable dans les applications qui traitent des données JSON provenant de sources non fiables, telles que les API externes ou les entrées utilisateur. La complexité de l'exploitation dépend de la configuration de l'application et des validations mises en œuvre. L'absence de validation de l'entrée JSON est un facteur clé qui facilite l'exploitation. La nature subtile de la pollution du prototype rend l'exploitation difficile à détecter, augmentant ainsi le risque.
Statut de l'Exploit
EPSS
1.26% (percentile 79%)
Vecteur CVSS
L'atténuation la plus efficace de CVE-2021-3918 consiste à mettre à jour la bibliothèque kriszyp/json-schema vers la version 0.4.0 ou ultérieure. Cette version inclut une correction qui empêche la pollution du prototype. Si une mise à jour immédiate n'est pas possible, examinez attentivement le code qui utilise cette bibliothèque, en recherchant des modèles susceptibles de subir une pollution du prototype. L'implémentation de validations supplémentaires sur l'entrée JSON peut aider à réduire le risque, bien qu'elle ne soit pas une solution complète. La surveillance des journaux d'application à la recherche de comportements anormaux liés à la manipulation d'objets peut également aider à détecter et à répondre aux attaques potentielles. Des tests d'intrusion sont recommandés pour identifier les faiblesses potentielles.
Actualice la biblioteca json-schema a una versión posterior a 0.3.0. Esto solucionará la vulnerabilidad de Prototype Pollution. Puede actualizar la dependencia utilizando npm o yarn.
Analyses de vulnérabilités et alertes critiques directement dans votre boîte mail.
La Pollution du Prototype est une attaque qui permet à un attaquant de modifier des propriétés sur l'objet Object.prototype, impactant toutes les instances d'objets dans JavaScript.
Si vous utilisez kriszyp/json-schema dans une version antérieure à 0.4.0, votre application est vulnérable. Examinez votre code pour identifier où la bibliothèque est utilisée et si vous traitez des données JSON provenant de sources non fiables.
L'implémentation de validations supplémentaires sur l'entrée JSON peut aider à réduire le risque, mais ce n'est pas une solution complète. La surveillance des journaux d'application est également importante.
Les schémas JSON qui tentent de modifier des propriétés de l'objet Object.prototype, telles que proto, constructor ou des propriétés personnalisées.
Vous pouvez trouver plus d'informations dans la base de données des vulnérabilités du NIST : https://nvd.nist.gov/vuln/detail/CVE-2021-3918
Téléverse ton fichier de dépendances et découvre instantanément si cette CVE et d'autres te touchent.