· Vulnérabilités · 2 min de lecture
Vulnérabilité de pollution de prototype dans JSON5
Un avis historique sur JSON5 montre pourquoi les équipes doivent suivre les versions vulnérables et traiter les entrées non fiables comme une frontière de sécurité.
Cet article porte sur un avis historique concernant JSON5, CVE-2022-46175. Il demeure utile parce qu’il montre comment un petit détail d’analyse syntaxique peut compter lorsqu’une donnée non fiable est ensuite utilisée dans une décision de confiance.
Ce que visait l’avis
L’avis de sécurité JSON5 indique que certaines versions du paquet npm json5 pouvaient analyser une clé __proto__ et polluer le prototype de l’objet retourné par JSON5.parse. Le problème touchait les versions >= 2.0.0, < 2.2.2 ainsi que les versions antérieures à 1.0.2. Le projet a publié les correctifs dans 2.2.2 et 1.0.2.[1]
Il ne s’agissait pas du cas habituel où le prototype global Object est modifié. Le risque était attaché à l’objet analysé lui-même. Si une application utilisait ensuite cet objet dans des opérations de confiance, des valeurs héritées inattendues pouvaient influencer l’autorisation ou une autre logique sensible.[1]
Pourquoi ce modèle compte
Le problème rappelle que la validation doit correspondre à la façon dont une application utilise les données. Vérifier seulement les clés propres à un objet peut ne pas suffire lorsque l’héritage de prototypes, la fusion d’objets ou une analyse permissive sont en jeu.
L’impact d’une faille d’analyse dépend du contexte. Il peut être limité dans une application et sérieux dans une autre. L’avis énumère notamment le déni de service, les scripts intersites, l’élévation de privilèges et, dans les cas extrêmes, l’exécution de code à distance.[1]
Ce qu’il faut faire maintenant
Si un projet utilise encore JSON5, commencez avec des éléments concrets plutôt que des suppositions :
- Vérifiez les fichiers de verrouillage et les inventaires de dépendances déployées pour connaître la version JSON5 réellement résolue.
- Mettez à jour les installations
2.xtouchées vers2.2.2ou une version ultérieure, et les installations1.xtouchées vers1.0.2ou une version ultérieure. - Testez l’application après la mise à jour de dépendance.
- Révisez les chemins de code qui analysent des données non fiables puis utilisent le résultat pour l’autorisation, la configuration ou d’autres opérations de confiance.
- Gardez des alertes de dépendances et une responsabilité de triage afin que les prochains avis aient une voie de révision claire.
Il ne faut pas paniquer à propos de chaque utilisation de JSON5. Il faut plutôt savoir quelle version est déployée et comment les données analysées circulent dans l’application.
Si votre équipe a besoin d’un processus plus clair pour l’inventaire des dépendances, le triage des vulnérabilités ou la révision sécuritaire d’applications, contactez-nous ou consultez notre service de conseil en cybersécurité.