D-OPEN

Proto6 : 6 failles critiques dans protobuf.js, 50 millions d'applications exposées — correctifs et actions immédiates

Antoine Moreau

Antoine Moreau

Architecte sécurité applicative · 13 ans · 11 juin 2026 · 16 min de lecture

Proto6 failles critiques protobuf.js sécurité npm développeurs

TL;DR — Alerte critique

  • 6 CVE découvertes par Cyera Research dans protobuf.js (50M téléchargements/semaine npm). La plus critique (CVE-2026-44291, CVSS 8.1) permet l'exécution de code arbitraire via le constructeur Function().
  • Versions affectées : 7.5.5 et antérieures, 8.0.0, 8.0.1. Patches : 7.5.6, 8.0.2, protobuf.js-cli 1.2.1 ou 2.0.2.
  • Impact : tout service Node.js qui désérialise des données Protobuf ou génère du code à partir de schémas est probablement touché. Vérifiez vos dépendances transitives immédiatement.

Le 11 juin 2026, les chercheurs en cybersécurité de Cyera Research ont dévoilé six vulnérabilités critiques dans protobuf.js, l'implémentation JavaScript et TypeScript de Protocol Buffers maintenue par la communauté open source. Baptisé « Proto6 », cet ensemble de failles touche une bibliothèque téléchargée plus de 50 millions de fois par semaine sur npm. La vulnérabilité la plus sévère (CVE-2026-44291, CVSS 8.1) permet l'exécution de code arbitraire lorsqu'une application Node.js accepte des entrées contrôlées par un attaquant. Les correctifs sont disponibles — voici l'analyse complète et les actions pour les équipes de développement françaises.

Qu'est-ce que protobuf.js et pourquoi 50 millions de téléchargements ?

Protocol Buffers (Protobuf) est le format de sérialisation de données créé par Google, utilisé massivement pour la communication inter-services, les API gRPC et le stockage structuré. protobuf.js est l'implémentation de référence pour l'écosystème JavaScript et TypeScript. Elle est utilisée directement ou comme dépendance transitive par des milliers de packages npm, dont :

  • @grpc/grpc-js : le client gRPC officiel pour Node.js
  • firebase-admin et @google-cloud/* : les SDK Google Cloud
  • @bufbuild/protobuf : les outils Buf pour Protocol Buffers
  • apollo-server : via certaines extensions de schéma fédéré
  • Des centaines de packages internes d'entreprises utilisant gRPC pour la communication microservices

Avec 50 millions de téléchargements hebdomadaires, protobuf.js se classe parmi les 100 packages npm les plus installés au monde. Même si votre package.json ne le référence pas directement, il est très probablement présent dans votre arbre de dépendances transitives. C'est ce qui rend Proto6 particulièrement dangereux : la surface d'exposition est massive et souvent invisible.

Pour les équipes de développement à Paris, Lyon, Toulouse ou Genève qui construisent des architectures microservices avec gRPC, la probabilité d'être affecté approche les 100%. Les startups et scale-ups françaises qui utilisent Firebase ou les services Google Cloud sont également dans le périmètre.

Les 6 CVE détaillées : sévérité, vecteur et impact

Cyera Research a identifié six vulnérabilités distinctes, chacune exploitant un aspect différent du mécanisme de génération de code dynamique de protobuf.js. Voici le détail de chaque CVE, classée par sévérité décroissante :

CVECVSSSévéritéVecteur d'attaque
CVE-2026-442958.7HauteInjection de code via métadonnées de schéma manipulées (réseau)
CVE-2026-442918.1HauteExécution de code via entrées attaquant dans app Node.js
CVE-2026-442897.5HauteDéni de service via désérialisation de messages malformés
CVE-2026-442907.5HauteFuite d'informations via encodage manipulé
CVE-2026-442925.3MoyenneContournement de validation de types
CVE-2026-442945.3MoyennePollution de prototype via champs réservés
Sévérité CVSS des 6 vulnérabilités Proto603698.7CVE-442958.1CVE-442917.5CVE-442897.5CVE-442905.3CVE-442925.3CVE-44294Seuil critique (7.0)

La cause racine : Function() et la confiance implicite dans les schémas

Le cœur du problème réside dans un choix d'architecture qui remonte aux origines de protobuf.js. Pour maximiser les performances de sérialisation et désérialisation, la bibliothèque génère dynamiquement des fonctions d'encodage et de décodage à l'exécution en utilisant le constructeur Function() de JavaScript.

Ce constructeur est fonctionnellement équivalent à eval() : il compile et exécute du code JavaScript à partir d'une chaîne de caractères. La différence est que Function() crée une fonction réutilisable, tandis que eval() exécute immédiatement. Dans les deux cas, des données deviennent du code exécutable — un anti-pattern de sécurité fondamental.

Le deuxième problème est la confiance implicite accordée aux métadonnées de schéma. Lorsqu'une application charge un fichier .proto ou reçoit une définition de schéma, protobuf.js traite les noms de champs, les types et les métadonnées comme des données de confiance. Il n'y a aucune validation ni sanitisation de ces valeurs avant leur injection dans le code généré via Function().

Le scénario d'exploitation typique est le suivant :

  1. Un attaquant soumet un message Protobuf contenant des métadonnées de schéma malveillantes à une application Node.js
  2. L'application passe ces données à protobuf.js pour désérialisation
  3. protobuf.js génère une fonction d'encodage/décodage en utilisant Function()
  4. Les métadonnées manipulées par l'attaquant sont injectées dans le code généré
  5. Le code malveillant s'exécute avec les privilèges du processus Node.js
Flux d'attaque Proto6 — De l'entrée utilisateur à l'exécution de codeAttaquantMessage Protobuf avecmétadonnées malveillantesApplication Node.jsDésérialisation viaprotobuf.jsFunction() ConstructorGénération dynamiqueencoder/decoderRCECode attaquantexécutéCause racine : aucune sanitisation entre les métadonnées de schéma et Function()protobuf.js traite les noms de champs et types comme « de confiance » par défautLes données de l'attaquant deviennent du code exécutable sans filtrageCorrectif (7.5.6 / 8.0.2)✓ Sanitisation des noms de champs avant Function()✓ Validation stricte des types de métadonnées✓ Échappement des caractères spéciaux dans le code généré✓ Blocage des payloads connus de type prototype pollutionProtection long terme recommandée→ Remplacer Function() par des codecs pré-compilés→ Sandboxer la génération de code (vm2/isolated-vm)→ Valider les schémas avant chargement en production→ Limiter les permissions du processus Node.js

💡 Notre avis d'expert

« Le vrai scandale n'est pas les 6 CVE — c'est que Function() soit encore utilisé pour générer du code dynamique en 2026. Les mainteneurs open source doivent abandonner cette pratique immédiatement. Il existe des alternatives performantes : les codecs pré-compilés avec pbjs --target static-module, ou les bibliothèques comme @bufbuild/protobuf qui n'utilisent jamais de génération de code dynamique. Le gain de performance de Function() ne justifie plus le risque sécuritaire en 2026. »

CVE-2026-44291 : la faille la plus dangereuse en détail

La CVE-2026-44291 (CVSS 8.1) est la vulnérabilité qui présente le risque le plus immédiat pour les applications en production. Elle permet l'exécution de code arbitraire (Remote Code Execution) lorsqu'une application Node.js accepte et traite des données Protobuf contrôlées par un attaquant.

Le scénario d'exploitation concret :

  • Précondition : une application Node.js expose un endpoint qui reçoit des messages Protobuf (API gRPC, endpoint REST acceptant du Protobuf, service de messaging avec des payloads Protobuf)
  • Vecteur : l'attaquant envoie un message dont les métadonnées de schéma contiennent du code JavaScript injecté
  • Exploitation : sous des conditions spécifiques liées au chargement dynamique de schémas, protobuf.js utilise les métadonnées pour générer du code via Function()
  • Résultat : le code de l'attaquant s'exécute avec les privilèges complets du processus Node.js — accès au système de fichiers, au réseau, aux variables d'environnement (clés API, secrets)

Les applications particulièrement exposées sont celles qui :

  1. Chargent des définitions de schémas .proto dynamiquement à l'exécution (plutôt que d'utiliser des modules statiques pré-compilés)
  2. Acceptent des messages Protobuf de sources non fiables sans validation préalable du schéma
  3. Utilisent la fonctionnalité de réflexion de protobuf.js pour découvrir et charger des types à la volée

💡 Notre avis d'expert

« 50 millions de téléchargements hebdomadaires signifie que VOTRE application est probablement touchée, même si vous n'utilisez pas protobuf.js directement. Vérifiez votre arbre de dépendances transitives MAINTENANT. Un simple npm ls protobufjs vous dira si vous êtes dans le périmètre. Si c'est le cas, la mise à jour est une urgence absolue — pas quelque chose à planifier dans le prochain sprint. »

CVE-2026-44295 (CVSS 8.7) : injection à distance via le réseau

La CVE-2026-44295 possède le score CVSS le plus élevé de l'ensemble Proto6 (8.7) en raison de son vecteur d'attaque réseau. Cette vulnérabilité permet à un attaquant d'injecter du code via des métadonnées de schéma manipulées transmises sur le réseau.

Le scénario diffère de la CVE-2026-44291 par le fait que l'attaque peut être menée à distance, sans nécessiter que l'application expose un endpoint direct. Il suffit que l'application consomme des schémas Protobuf depuis une source réseau potentiellement compromise (registry interne, service de découverte, dépôt Git). Si un attaquant parvient à modifier un fichier .proto dans un dépôt de schémas partagé, toutes les applications qui chargent ce schéma deviennent vulnérables.

Les 4 autres CVE : DoS, fuite d'informations et prototype pollution

CVE-2026-44289 et CVE-2026-44290 (CVSS 7.5) : ces deux vulnérabilités permettent respectivement un déni de service (crash de l'application via des messages malformés) et une fuite d'informations (lecture de données mémoire via un encodage manipulé). Bien que moins critiques que les RCE, elles représentent un risque significatif pour les services exposés sur Internet. Un attaquant peut les utiliser pour du reconnaissance (fuite d'informations sur la topologie interne) ou pour du déni de service ciblé contre des services critiques.

CVE-2026-44292 et CVE-2026-44294 (CVSS 5.3) : ces failles de sévérité moyenne exploitent respectivement un contournement de validation de types et une pollution de prototype via des champs réservés. La pollution de prototype (CVE-2026-44294) est particulièrement insidieuse car elle peut être chaînée avec d'autres vulnérabilités de l'application pour obtenir une exécution de code dans des contextes où les CVE principales ne sont pas directement exploitables.

Versions affectées et correctifs disponibles

Voici le tableau complet des versions affectées et des correctifs :

PackageVersions vulnérablesVersion corrigéeAction
protobufjs (branche 7.x)≤ 7.5.57.5.6npm update protobufjs
protobufjs (branche 8.x)8.0.0, 8.0.18.0.2npm update protobufjs
protobufjs-cli (v1.x)≤ 1.2.01.2.1npm update protobufjs-cli
protobufjs-cli (v2.x)≤ 2.0.12.0.2npm update protobufjs-cli
Chronologie des patches Proto6 — Juin 2026DécouverteCyera Researchidentifie les 6 CVEDisclosureCommunication auxmainteneurs11 juin 2026Patches publiés7.5.6 / 8.0.211 juin 2026Alerte CSA SingapourAL-2026-041Action immédiate : mettez à jour protobuf.js AUJOURD'HUInpm update protobufjs && npm ls protobufjs (vérifiez les dépendances transitives)

💡 Notre avis d'expert

« Cette découverte de Cyera Research démontre que les audits de sécurité sponsorisés par le privé sont devenus indispensables. La communauté open source seule ne peut plus couvrir la surface d'attaque. protobuf.js est maintenu par une poignée de bénévoles pour 50 millions de téléchargements par semaine. Sans l'investissement de Cyera dans l'audit sécurité, ces 6 failles seraient restées silencieuses pendant des mois, voire des années. Les entreprises françaises qui dépendent de l'open source critique doivent financer des audits ou rejoindre des initiatives comme l'Alpha-Omega Project de l'OpenSSF. »

Ce que ça signifie pour vous

Si vous développez en Node.js ou TypeScript et que votre application utilise des communications gRPC, Firebase, Google Cloud ou tout autre framework utilisant Protocol Buffers, vous êtes très probablement dans le périmètre de Proto6. Voici les actions concrètes par priorité :

Priorité 1 — Vérification immédiate (5 minutes)

Exécutez les commandes suivantes dans chaque projet Node.js de votre organisation :

# Vérifier si protobuf.js est dans votre arbre de dépendances
npm ls protobufjs

# Alternative avec yarn
yarn why protobufjs

# Vérifier la version exacte installée
npm list protobufjs --all | grep protobufjs

Si une version antérieure à 7.5.6 ou les versions 8.0.0/8.0.1 apparaissent, passez immédiatement à la priorité 2.

Priorité 2 — Mise à jour (15 minutes)

Mettez à jour protobuf.js vers la version corrigée :

# Si dépendance directe
npm install protobufjs@latest

# Forcer la résolution pour les dépendances transitives (npm >= 8.3)
# Ajoutez dans package.json :
"overrides": {
  "protobufjs": ">=7.5.6"
}

# Pour yarn
"resolutions": {
  "protobufjs": ">=7.5.6"
}

Priorité 3 — Audit de l'exposition (1 heure)

Évaluez si vos services ont été exposés. Les questions clés à se poser :

  • Vos services gRPC ou Protobuf sont-ils exposés sur Internet ou uniquement en réseau interne ?
  • Vos applications chargent-elles des schémas .proto dynamiquement à l'exécution ?
  • Acceptez-vous des messages Protobuf de sources non authentifiées ?
  • Utilisez-vous la réflexion Protobuf (chargement de types à la volée) ?

Si la réponse à l'une de ces questions est oui, considérez une analyse de logs pour détecter d'éventuelles tentatives d'exploitation entre la date de découverte et aujourd'hui.

Priorité 4 — Mesures structurelles (1 semaine)

Au-delà de la mise à jour immédiate, mettez en place des mesures durables :

  • Précompilation statique : remplacez le chargement dynamique de .proto par des modules statiques générés avec pbjs --target static-module. Cela élimine complètement la génération de code à l'exécution.
  • Monitoring des dépendances : configurez Dependabot, Renovate ou Socket.dev pour être alerté automatiquement des vulnérabilités dans votre arbre de dépendances.
  • Politique de sécurité : implémentez un pare-feu de dépendances npm pour bloquer automatiquement les packages vulnérables.

💡 Notre avis d'expert

« Notre prédiction : d'ici 6 mois, au moins 3 frameworks Node.js majeurs vont implémenter un sandboxing obligatoire pour la génération de code dynamique. Le pattern Function() constructor est mort. La Node.js Permission Model API (--experimental-permission), introduite en Node 20, va devenir la norme pour les applications qui traitent des données non fiables. Les équipes qui ne migrent pas vers des codecs pré-compilés s'exposent à des vulnérabilités similaires dans d'autres bibliothèques. »

Contexte international : alerte CSA Singapour

La Cyber Security Agency (CSA) de Singapour a émis une alerte officielle (référence AL-2026-041) concernant Proto6. Cette réaction rapide d'une agence gouvernementale souligne la gravité de la situation. La CSA recommande explicitement la mise à jour immédiate de protobuf.js et l'audit des dépendances transitives pour toutes les organisations utilisant Node.js.

En France, l'ANSSI et le CERT-FR n'ont pas encore publié d'alerte spécifique sur Proto6 au moment de la rédaction de cet article. Cependant, compte tenu du score CVSS et de la surface d'exposition (50 millions de téléchargements hebdomadaires), un bulletin est attendu dans les prochaines heures. Les équipes françaises ne doivent pas attendre l'alerte officielle pour agir.

Pour les organisations soumises à NIS2 en France et en Belgique, l'exploitation active de Proto6 contre des services critiques pourrait constituer un incident notifiable auprès de l'ANSSI ou du Centre pour la Cybersécurité Belgique (CCB). Les équipes à Bruxelles, Liège ou Lausanne doivent également vérifier leurs obligations locales en matière de notification d'incidents.

Leçons pour la supply chain open source

Proto6 est le dernier épisode d'une série de vulnérabilités critiques dans des packages npm massivement utilisés. En mai 2026, nous avions documenté l'audit de dépendances npm pour la supply chain et les attaques supply chain via npm. Proto6 confirme les tendances que nous avions identifiées :

  1. Les packages de fondation sont les plus dangereux : protobuf.js n'est pas un package de niche — c'est une brique fondamentale utilisée par Google Cloud, Firebase et la plupart des implémentations gRPC en JavaScript. Quand un package de cette importance est vulnérable, l'impact est systémique.
  2. Les dépendances transitives sont le vrai danger : la plupart des développeurs ne savent pas que protobuf.js est dans leur arbre de dépendances. Ils utilisent @google-cloud/firestore ou @grpc/grpc-js sans réaliser que protobuf.js est le moteur de sérialisation sous-jacent.
  3. Les audits sponsorisés comblent un vide : Cyera Research a investi du temps et de l'argent pour auditer une bibliothèque open source critique. Sans cet investissement, les failles Proto6 seraient restées silencieuses. Le modèle « beaucoup d'yeux rendent les bugs superficiels » (loi de Linus) ne fonctionne pas pour les failles de sécurité subtiles dans du code complexe.

Pour les entreprises françaises à Paris, Lyon, Nantes, Bordeaux ou Strasbourg qui construisent des plateformes SaaS, des services financiers ou des applications de santé en Node.js, Proto6 est un rappel brutal : la sécurité de votre application dépend entièrement de la sécurité de ses dépendances les plus profondes. Un pare-feu de dépendances npm n'est plus optionnel — c'est une nécessité opérationnelle.

Impact sur les frameworks et services dépendants

L'impact de Proto6 ne se limite pas aux applications qui utilisent directement protobuf.js. Voici les frameworks et services majeurs qui incluent protobuf.js comme dépendance transitive et sont donc potentiellement affectés :

  • Google Cloud Node.js SDK (@google-cloud/*) : tous les services Google Cloud utilisés via Node.js passent par protobuf.js pour la sérialisation. Firestore, Pub/Sub, BigQuery, Cloud Functions — l'ensemble de la stack Google Cloud est dans le périmètre.
  • Firebase Admin SDK (firebase-admin) : les applications backend qui utilisent Firebase pour la base de données temps réel, les notifications push ou l'authentification incluent protobuf.js.
  • gRPC pour Node.js (@grpc/grpc-js) : toute architecture microservices utilisant gRPC en JavaScript/TypeScript est affectée.
  • Prisma : certaines versions de Prisma utilisent protobuf.js pour la communication entre le client et le query engine.
  • NestJS : les applications NestJS utilisant le transport gRPC dépendent de protobuf.js.

Pour vérifier si un package spécifique de votre stack est affecté, utilisez npm explain protobufjs (npm 7+) qui affiche la chaîne de dépendances complète menant à protobuf.js.

Recommandations architecturales long terme

Au-delà de la mise à jour immédiate, Proto6 doit servir de catalyseur pour des changements architecturaux durables dans vos applications Node.js :

  1. Adoptez la génération statique de code Protobuf : utilisez pbjs --target static-module --wrap es6 pour générer des modules JavaScript statiques à partir de vos fichiers .proto. Intégrez cette génération dans votre pipeline CI/CD. Plus aucune génération de code à l'exécution.
  2. Évaluez les alternatives à protobuf.js : @bufbuild/protobuf (Buf Connect) est une implémentation moderne qui n'utilise pas de génération dynamique de code. La migration demande un effort significatif mais élimine une classe entière de vulnérabilités.
  3. Activez la Node.js Permission Model API : depuis Node 20, le flag --experimental-permission permet de restreindre l'accès au système de fichiers et au réseau pour vos applications. Même si un RCE est exploité, les dégâts sont limités.
  4. Segmentez vos services : les services qui désérialisent des données de sources non fiables doivent tourner avec des privilèges minimaux, dans des conteneurs sans accès au réseau interne sensible.

Votre application utilise protobuf.js ?

D-Open accompagne les équipes de développement françaises sur l'audit de la supply chain npm, la mise à jour sécurisée des dépendances critiques et l'architecture de services résilients. Si vous êtes impacté par Proto6, nous pouvons vous aider à évaluer votre exposition et planifier la rémédiation.

Demander un audit d'exposition Proto6

Comment Cyera Research a découvert les failles

Cyera Research, spécialiste de la sécurité des données, a identifié les 6 vulnérabilités Proto6 lors d'un audit systématique des bibliothèques de sérialisation les plus utilisées dans l'écosystème JavaScript. Leur méthodologie reposait sur l'identification des patterns d'utilisation de Function() et eval() dans les bibliothèques de désérialisation, suivie d'une analyse de la chaîne de confiance entre les entrées utilisateur et le code généré.

Ce type d'audit ciblé est de plus en plus courant dans l'écosystème sécurité. Des entreprises comme Cyera, Trail of Bits, et Cure53 investissent dans l'audit proactif de bibliothèques open source critiques, soit dans le cadre de programmes de bug bounty étendus, soit comme activité de recherche stratégique. Pour la communauté open source française, c'est un signal encourageant : les vulnérabilités sont découvertes et corrigées avant exploitation massive.

Cependant, cela soulève aussi la question de la soutenabilité du modèle open source. protobuf.js est maintenu par un nombre très limité de contributeurs bénévoles pour un package utilisé par des millions d'applications commerciales. Les entreprises françaises qui dépendent de ce type de bibliothèques devraient envisager de contribuer financièrement à leur maintenance via des programmes comme Open Source Security Foundation (OpenSSF) ou Tidelift.

Conclusion : agir maintenant, planifier pour demain

Proto6 est un signal d'alarme pour l'ensemble de l'écosystème Node.js. Six vulnérabilités dans une bibliothèque téléchargée 50 millions de fois par semaine, avec une RCE exploitable à distance — c'est exactement le scénario catastrophe que les spécialistes de la supply chain redoutaient.

Les correctifs sont disponibles (7.5.6, 8.0.2). Appliquez-les immédiatement. Mais au-delà du patch, prenez le temps de comprendre pourquoi votre application est vulnérable et ce que cela révèle sur votre gestion des dépendances. Si vous ne savez pas quelles bibliothèques sont dans votre arbre de dépendances transitives, vous ne pouvez pas évaluer votre exposition aux prochaines vulnérabilités. Investissez dans un pare-feu de dépendances et un processus d'audit continu. La sécurité de votre application n'est aussi forte que celle de son maillon le plus faible — et ce maillon est souvent une dépendance transitive que vous ne soupconnez pas. Obtenir un devis gratuit pour un accompagnement sur l'audit de votre supply chain npm.

Protégez votre supply chain Node.js

D-Open propose des audits complets de la supply chain npm : dépendances transitives, scanning de vulnérabilités, mise en place de pare-feu de dépendances et monitoring continu. Adapté aux équipes françaises de toutes tailles.

Planifier un audit supply chain

Questions fréquentes

Qu'est-ce que Proto6 et quelles versions de protobuf.js sont affectées ?

Proto6 est le nom de code donné par Cyera Research aux 6 vulnérabilités découvertes dans protobuf.js. Les versions affectées sont 7.5.5 et antérieures (branche 7.x), ainsi que 8.0.0 et 8.0.1 (branche 8.x). Les correctifs sont disponibles dans les versions 7.5.6 et 8.0.2. Le CLI (protobuf.js-cli) est également affecté et doit être mis à jour vers 1.2.1 ou 2.0.2.

Comment savoir si mon application est vulnérable à Proto6 ?

Exécutez npm ls protobufjs ou yarn why protobufjs dans votre projet. Si protobuf.js apparaît (même comme dépendance transitive), vérifiez la version. Avec 50 millions de téléchargements par semaine, protobuf.js est souvent une dépendance cachée de Google Cloud SDK, Firebase Admin, gRPC-js, Prisma ou NestJS. Si vous utilisez l'un de ces outils, vous êtes probablement dans le périmètre.

Quelle est la faille la plus critique et comment fonctionne-t-elle ?

CVE-2026-44291 (CVSS 8.1) permet l'exécution de code arbitraire. protobuf.js utilise le constructeur Function() pour générer dynamiquement des fonctions d'encodage/décodage. Comme les métadonnées de schéma sont traitées comme « de confiance » par défaut, un attaquant peut injecter du code JavaScript dans ces métadonnées. Quand protobuf.js les passe à Function(), le code malveillant s'exécute avec les privilèges du processus Node.js.

Pourquoi le constructeur Function() est-il dangereux ?

Function() est essentiellement eval() déguisé : il compile et exécute du code à partir d'une chaîne de caractères. Son utilisation pour générer du code à partir de données non fiables est un anti-pattern de sécurité reconnu depuis plus de 15 ans. protobuf.js l'utilise pour des raisons de performance (les fonctions générées sont plus rapides que l'interprétation dynamique). L'alternative est la génération statique de code avec pbjs --target static-module ou le passage à @bufbuild/protobuf.

Articles similaires