En bref

  • CVE-2026-33725 : RCE et lecture de fichiers arbitraire dans Metabase Enterprise via injection H2 JDBC INIT lors d'un import de sérialisation
  • Un PoC public a été publié — Metabase OSS n'est pas affecté, seule l'édition Enterprise expose le code path vulnérable
  • Patcher immédiatement vers la dernière version Metabase Enterprise corrigée et restreindre l'accès à l'interface d'administration

Les faits

Référencée dans le bulletin GHSA-fppj-vcm3-w229 publié sur GitHub Security Advisory, la vulnérabilité CVE-2026-33725 affecte Metabase Enterprise Edition, la déclinaison commerciale de la plateforme d'analytique open source utilisée par des dizaines de milliers d'entreprises. Le défaut réside dans la fonction d'import de sérialisation accessible via POST /api/ee/serialization/import : un administrateur authentifié peut soumettre une archive forgée qui injecte une propriété INIT dans la chaîne de connexion JDBC H2. Lors de la synchronisation de la base, le moteur H2 exécute alors le SQL contrôlé par l'attaquant, ce qui débouche sur une exécution de code arbitraire sur le serveur Metabase et sur la lecture de fichiers locaux. La faille est classée CWE-502 (désérialisation de données non fiables) avec un impact équivalent à une compromission complète du conteneur Metabase.

Cette vulnérabilité s'inscrit dans la longue lignée des injections H2 JDBC (héritière de CVE-2023-38646 et CVE-2023-37470), preuve qu'elle n'est pas un cas isolé mais bien un schéma d'attaque récurrent contre les applications Java qui acceptent des chaînes JDBC contrôlées par l'utilisateur. Un PoC d'exploitation a été publié peu après la divulgation, ce qui réduit drastiquement la fenêtre de patching.

Impact et exposition

Le pré-requis d'authentification administrateur peut sembler limiter la portée, mais en pratique deux scénarios élèvent fortement le risque. Premièrement, beaucoup d'instances Metabase Enterprise sont exposées sur Internet avec des comptes admin par défaut, des mots de passe faibles ou des intégrations SSO mal configurées : un bourrage d'identifiants, un phishing ciblé sur un data analyst senior ou la réutilisation d'un credential leak suffit à obtenir l'accès. Deuxièmement, sur les déploiements internes, le compromis d'un seul compte d'administrateur Metabase devient un pivot direct vers les bases de données métiers, les data warehouses et les credentials de connexion stockés en clair dans la configuration des sources de données.

L'exécution se fait dans le contexte du processus JVM Metabase, généralement avec accès en lecture aux fichiers de configuration, aux clés de chiffrement et aux variables d'environnement contenant les secrets de connexion aux bases. Le scénario d'attaque ressemble à celui des récentes injections SQL critiques SAP BPC/BW : un défaut applicatif transforme la couche analytique en porte d'entrée vers tout le patrimoine de données.

Recommandations immédiates

  • Mettre à jour Metabase Enterprise vers la dernière version corrigée publiée dans le bulletin GitHub Security Advisory GHSA-fppj-vcm3-w229
  • Restreindre l'accès à l'interface d'administration (sous-réseaux internes uniquement, VPN obligatoire, IP allow-list)
  • Activer le MFA sur tous les comptes administrateurs Metabase et auditer les comptes inactifs ou hérités
  • Bloquer l'endpoint /api/ee/serialization/import au niveau du reverse proxy si la fonctionnalité d'import sérialisé n'est pas utilisée
  • Surveiller les logs d'accès à /api/ee/serialization/import et les processus enfants anormaux du JVM Metabase (spawn de sh, bash, curl, wget)
  • Auditer les sources de données configurées dans Metabase pour détecter toute connexion JDBC contenant INIT= ou ;RUNSCRIPT

⚠️ Urgence

La publication d'un PoC public combinée à la facilité d'exploitation (un simple POST authentifié) place CVE-2026-33725 dans la catégorie « patch en moins de 7 jours ». Les opérateurs d'attaques opportunistes scannent en continu Internet à la recherche d'instances Metabase exposées : c'est exactement le profil qui a alimenté les vagues d'exploitation de CVE-2023-38646 trois ans après son patch.

Comment savoir si je suis vulnérable ?

Vérifier l'édition (Enterprise Edition est seule affectée) et la version dans Settings / Admin / About Metabase ou via l'endpoint /api/session/properties. Toute version Enterprise antérieure au correctif référencé dans GHSA-fppj-vcm3-w229 est vulnérable. Pour un parc, scanner les bannières HTTP avec curl -s https://target/api/session/properties | jq .version.

Comment détecter une exploitation en cours ?

Rechercher dans les logs Metabase les requêtes POST vers /api/ee/serialization/import, les erreurs liées à H2 JDBC contenant INIT ou RUNSCRIPT, et les processus enfants suspects du JVM. Les indicateurs comportementaux ressemblent à ceux décrits dans notre analyse CVE-2026-32604 Spinnaker.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.

Demander un audit