Cyera Research découvre six vulnérabilités dans Protobuf.js qui affectent l'infrastructure des systèmes de données et d'IA.

Jun 5, 2026
Partager

Les chercheurs de Cyera ont découvert et aidé à corriger six vulnérabilités dans protobuf.js, y compris des failles qui pourraient conduire à une exécution de code à distance (RCE) et à des attaques par déni de service (DoS).

Si vous vous demandez pourquoi c'est important, c'est une question légitime. La plupart d'entre nous interagissons rarement directement avec protobuf.js. Pourtant, il s'agit du moteur d'exécution JavaScript le plus utilisé pour Protocol Buffers, un format de sérialisation qui sous-tend la communication entre des millions d'applications, de bases de données, de services cloud et de systèmes d'IA. Ce package est téléchargé plus de 50 millions de fois par semaine, et son adoption réelle est probablement bien plus importante compte tenu de son intégration généralisée comme dépendance dans d'innombrables projets logiciels.

Principales conclusions

Les chercheurs de Cyera ont découvert six vulnérabilités dans protobuf.js. Dans les environnements affectés, un seul schéma protobuf malveillant, un descripteur ou une charge utile spécialement conçue pourrait suffire à provoquer des plantages, une corruption de l'exécution, voire l'exécution de code malveillant.

Ces vulnérabilités affectent les applications Node.js utilisant protobuf.js, lequel est intégré directement ou indirectement par les outils gRPC (@grpc/proto-loader), les bibliothèques clientes Google Cloud, les frameworks de messagerie tels que Baileys et les pipelines CI/CD. Tout service Node.js décodant des données protobuf ou générant du code à partir de schémas avec protobuf.js est potentiellement concerné.

Ces vulnérabilités affectent les versions de protobuf.js inférieures ou égales à 7.5.5 et supérieures ou égales à 8.0.0 et inférieures ou égales à 8.0.1, ainsi que les versions de protobufjs-cli inférieures ou égales à 1.2.0 et supérieures ou égales à 2.0.0 et inférieures ou égales à 2.0.1. Des correctifs sont disponibles pour protobufjs 7.5.6 et 8.0.2 et pour protobufjs-cli 1.2.1 et 2.0.2.

Qu'est-ce que Protobuf ?

Protocol Buffers est l'un des mécanismes les plus répandus pour le transfert de données structurées entre applications. Il est sous-jacent aux services cloud, aux bases de données, aux pipelines d'IA, aux API, aux applications mobiles et aux systèmes distribués. Dans les environnements JavaScript, protobuf.js est le moteur responsable de l'encodage et du décodage de ces informations, ce qui en fait l'une des bibliothèques de sérialisation les plus utilisées dans l'écosystème logiciel.

Comme Protobuf est conçu pour fonctionner en arrière-plan, la plupart des organisations ignorent le nombre de systèmes critiques qui en dépendent jusqu'à ce qu'un problème survienne.

Aperçu des vulnérabilités

Bien que les six vulnérabilités diffèrent dans leurs détails techniques (plus d'informations ici), elles découlent toutes d'un problème sous-jacent similaire :

  • protobuf.js a fait confiance à certaines données qui auraient dû être traitées comme des entrées potentiellement non fiables.
  • Les informations destinées à décrire la manière dont les données doivent être traitées (telles que les définitions de schéma, les noms de champs ou les valeurs de configuration) peuvent, dans certaines circonstances, influencer de manière inattendue le comportement de l'application.
  • Cela pourrait entraîner toute une série de conséquences, allant de simples plantages d'applications à des scénarios plus graves impliquant l'exécution de code.

Bien que l'exploitation de ces vulnérabilités nécessite généralement des conditions spécifiques, ces conditions sont de plus en plus fréquentes dans les écosystèmes de données et d'IA qui échangent régulièrement des données, des schémas et des fichiers de configuration entre services, référentiels, plateformes cloud et intégrations tierces.

Impact concret : des chatbots de messagerie aux chaînes d'approvisionnement logicielles

Découvrir des vulnérabilités dans un composant open source largement utilisé est une chose. Comprendre leurs conséquences potentielles en situation réelle est essentiel. Pour évaluer ces conséquences, nous avons testé plusieurs scénarios réalistes impliquant des technologies couramment utilisées par les entreprises, des plateformes d'automatisation destinées aux clients aux services cloud et aux pipelines de déploiement logiciel.

Une même vulnérabilité peut se manifester de manière très différente selon l'environnement de déploiement de protobuf.js. Dans un environnement, elle peut entraîner la panne d'un service ; dans un autre, elle peut affecter un pipeline CI/CD. Nous avons testé plusieurs scénarios afin de comprendre comment l'impact varie selon les bases de données, les chaînes d'approvisionnement logicielles, les charges de travail cloud et les plateformes de messagerie.

Un scénario d'attaque réaliste pourrait cibler les chaînes d'approvisionnement logicielles. Les équipes de développement acceptent régulièrement des contributions de code, intègrent des composants tiers et traitent automatiquement les fichiers via des pipelines CI/CD. Nous avons constaté que, dans certaines conditions, un schéma protobuf malveillant pouvait être introduit dans ce flux de travail et s'exécuter au sein d'environnements de compilation de confiance. La portée de cette découverte dépasse le cadre d'une seule application. Les systèmes de compilation ont souvent accès aux dépôts de code source, aux identifiants de déploiement, aux ressources cloud, aux certificats de signature et à d'autres actifs hautement sensibles. Une compromission à ce stade pourrait permettre aux attaquants d'étendre considérablement leurs attaques, bien au-delà du projet initial, et d'affecter potentiellement les produits, les clients et les opérations commerciales en aval.

Les risques ne se limitent pas aux applications, mais concernent également les plateformes de données dont de nombreuses organisations dépendent au quotidien. De nombreuses bases de données, plateformes de données et systèmes d'analyse échangent des informations via Protocol Buffers, et les services Node.js et les SDK clients qui les surveillent décodent souvent ce trafic avec protobuf.js. Dans ces environnements, protobuf est considéré comme une couche d'infrastructure de confiance et fait l'objet d'une surveillance bien moindre que les applications exposées.

Lorsque des services Node.js décodent des flux protobuf non fiables avec une version vulnérable, une charge utile malveillante peut les faire planter, bloquer les pipelines de traitement des données ou interrompre les opérations du backend. Dans les environnements à grande échelle où des centaines de services échangent des informations en continu, même une défaillance localisée peut engendrer des problèmes plus importants affectant la disponibilité et la fiabilité.

Les systèmes d'IA étaient particulièrement intéressants car Protobuf est omniprésent dans le processus, et plusieurs clients Node.js qui l'utilisent exécutent directement protobuf.js : le SDK de base de données vectorielles Milvus, le SDK d'orchestration TypeScript de Temporal et les exportateurs JavaScript d'OpenTelemetry l'intègrent tous. Si l'un de ces clients décode un Protobuf compromis par un attaquant, la même défaillance pourrait interrompre l'ingestion des données, bloquer leur récupération, retarder l'inférence ou affecter les services associés à un déploiement d'IA en production.

Un autre exemple frappant concerne les plateformes d'automatisation WhatsApp. Nous avons démontré qu'un message spécialement conçu pouvait provoquer des plantages répétés des frameworks de bots WhatsApp les plus populaires. L'impact dépasse la simple interruption de service. Le message malveillant restant stocké dans l'historique des conversations, les bots affectés peuvent entrer dans une boucle de défaillance persistante, plantant à chaque redémarrage et tentative de traitement du message. Pour les organisations qui dépendent des bots de messagerie pour le service client, les ventes, le support ou leurs opérations commerciales, une seule interaction malveillante peut potentiellement perturber tout un canal de communication.

Résumé et atténuation

Les six vulnérabilités découvertes par les chercheurs de Cyera affectent des opérations essentielles de protobuf.js, notamment le chargement de schémas, la génération de code, la gestion des objets, l'encodage, le décodage et l'analyse des descripteurs. Étant donné que protobuf.js est largement utilisé dans les bases de données, les systèmes de stockage vectoriel, les pipelines d'inférence, les systèmes d'orchestration, les outils CI/CD et les SDK cloud, une exploitation réussie de ces vulnérabilités pourrait impacter à grande échelle les charges de travail sensibles des entreprises et de l'IA.

Les enseignements de cette recherche dépassent le cadre de protobuf.js. Les logiciels modernes considèrent de plus en plus les schémas, les métadonnées et les fichiers de configuration comme des données d'entrée fiables qui pilotent l'automatisation, l'orchestration et la génération de code. Lorsque ces hypothèses de confiance sont rompues, les données peuvent se transformer en comportements. Ce changement crée de nouvelles surfaces d'attaque que les équipes de sécurité doivent apprendre à identifier et à gérer.

Actions immédiates :

  • Mettez à jour protobufjs et protobufjs-cli vers des versions corrigées et auditez les dépendances directes et transitives.
  • Priorisez les services gRPC, API, WebSocket et de file d'attente de messages exposés à Internet qui décodent les charges utiles protobuf non fiables, en particulier pour le risque de déni de service (DoS) CVE-2026-44289.
  • Examinez l'exposition à la pollution des prototypes dans les packages npm co-installés, car elle peut être enchaînée avec CVE-2026-44291 et le problème du typeName du descripteur pour obtenir une exécution de code à distance.
  • Considérez les schémas, descripteurs et registres de schémas Protobuf comme des entrées non fiables ; validez les sources .proto, descripteur JSON et FileDescriptorSet avant de les charger.
  • Sécurisez vos pipelines CI/CD avec pbjs. Verrouillez les versions, vérifiez l'intégrité des schémas et évitez de générer du code statique à partir de schémas non fiables.

Comment Cyera peut vous aider

Cyera aide les organisations à identifier et à réduire les risques dans les environnements cloud, d'IA et de données modernes où la communication basée sur Protobuf et la gestion dynamique des schémas sont profondément ancrées. Cyera offre une visibilité sur les flux de données sensibles, les pipelines d'IA, les services cloud et les systèmes distribués susceptibles d'être exposés à des bibliothèques vulnérables, des dépendances non sécurisées ou des modèles de chargement de schémas non sécurisés.

Grâce à Cyera, les organisations peuvent identifier les services à haut risque gérant le trafic protobuf sensible, détecter les secrets exposés et les données liées à l'IA, surveiller les intégrations à risque dans les environnements cloud-native et réduire l'impact en cas de compromission en cours d'exécution ou d'attaques de la chaîne d'approvisionnement.

Cyera aide également les équipes de sécurité à comprendre où résident les données sensibles d'entreprise et d'IA, comment elles circulent entre les systèmes et quelles charges de travail pourraient être affectées par des vulnérabilités dans les couches de sérialisation, l'infrastructure gRPC, les bases de données vectorielles ou les pipelines d'orchestration d'IA.

Partager