protobuf.js - CVE-2026-41242

Date de publication :

Il s'agit d'une vulnérabilité d'injection de code dans la bibliothèque protobuf.js.

protobuf.js est une bibliothèque JavaScript et TypeScript qui implémente le format Protocol Buffers de Google, avec plus de 52 millions de téléchargements hebdomadaires sur npm et une utilisation massive comme dépendance transitive dans les écosystèmes Node.js, Google Cloud et Firebase.

La bibliothèque compile les définitions protobuf en fonctions JavaScript via concaténation de chaînes puis exécution par le constructeur Function(), sans validation des identifiants issus du schéma. Un attaquant peut injecter du code arbitraire dans les champs type d'une définition protobuf au format JSON. Ce code est intégré à la fonction générée et s'exécute automatiquement lors du décodage d'un objet avec cette définition. L'exploitation nécessite que l'attaquant ait le contrôle sur les fichiers de définition protobuf chargés par l'application.

Elle permet à un attaquant de provoquer une exécution de code arbitraire à distance sur le serveur ou les postes développeurs chargeant des schémas non maîtrisés.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Non

Risques

Exécution de code arbitraire (à distance)

Exploitation

La vulnérabilité exploitée est du type
CWE-94 : Improper Control of Generation of Code ('Code Injection')

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Faible
•   Privilèges nécessaires pour réaliser l'attaque : Authentification utilisateur simple
•   Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
•   L'exploitation de la faille permet d'obtenir des droits privilégiés : Oui

Preuve de concept
Une preuve de concept est disponible en sources ouvertes.

Systèmes ou composants affectés

•   protobuf.js versions 7.5.4 et antérieures
•   protobuf.js versions 8.0.0 et antérieures

Solutions ou recommandations

•   protobuf.js branche 7.x : version 7.5.5 et supérieures
•   protobuf.js branche 8.x : version 8.0.1 et supérieures