Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-10036-speechbrain-rce — SpeechBrain < 1.1.1 exécution de code à distance (RCE) via les métadonnées de point de contrôle, due à un analyseur PyYAML non sécurisé de CKPT.yaml. | Kitploit
Outils/GitHubGitHub/saiteja-erukude/cve-2026-10036-speechbrain-rce
Analyse des VulnérabilitésAnalyse de CodeExploitationArticles et RechercheApprentissage et Éducation
GitHubsaiteja-erukude/cve-2026-10036-speechbrain-rce

CVE-2026-10036-speechbrain-rce

SpeechBrain < 1.1.1 exécution de code à distance (RCE) via les métadonnées de point de contrôle, due à un analyseur PyYAML non sécurisé de CKPT.yaml.

Voir le dépôt
il y a 6h 59mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-10036 : Exécution de code arbitraire dans SpeechBrain via l'analyse de CKPT.yaml

Sévérité : Élevée, CVSS 4.0 8.7, CVSS 3.1 8.8 (attribuée par VulnCheck, le CNA)

Vecteur (v4.0) : CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Vecteur (v3.1) : CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Versions concernées : SpeechBrain < 1.1.1

Corrigé dans : 1.1.1 / commit 22a6166

CWE : CWE-502 (Désérialisation de données non fiables)

Signalé par : Sai Teja Erukude

CNA : VulnCheck

Publié : 27 août 2026


Résumé

SpeechBrain avant la version utilise le chargeur non sécurisé de PyYAML lors de l'analyse des métadonnées pendant la récupération de points de contrôle.

1.1.1
CKPT.yaml

Un attaquant capable de fournir ou de modifier un répertoire de points de contrôle SpeechBrain peut placer un fichier CKPT.yaml malveillant dans un répertoire de points de contrôle CKPT*. Lorsqu'une victime appelle Checkpointer.recover_if_possible(), SpeechBrain liste les points de contrôle candidats et analyse chaque fichier de métadonnées candidat avec :

root@kitploit:~
yaml.load(fi, Loader=yaml.Loader)

Étant donné que yaml.Loader prend en charge les balises de construction d'objets Python telles que !!python/object/apply, des métadonnées de points de contrôle contrôlées par l'attaquant peuvent exécuter du code Python pendant la découverte des points de contrôle.

Le point de contrôle malveillant n'a pas besoin d'être sélectionné ou restauré. L'exécution de code se produit pendant que SpeechBrain énumère les points de contrôle candidats.

Impact

Un attaquant peut exécuter du code Python arbitraire dans le contexte du processus Python exécutant SpeechBrain.

Cela peut affecter les flux de travail où les utilisateurs téléchargent, décompressent, reprennent ou exécutent un entraînement/une inférence à partir de répertoires de points de contrôle, d'artefacts de modèles ou d'archives non fiables.

Selon le processus hôte, cela peut permettre :

  • La lecture ou la modification de fichiers accessibles au processus.
  • L'accès aux variables d'environnement et aux secrets d'application.
  • L'appel de services internes accessibles depuis l'hôte.
  • La perturbation des tâches d'entraînement, d'inférence ou d'automatisation.

Détail technique

Le composant concerné est le flux de récupération/listing des points de contrôle de SpeechBrain :

root@kitploit:~
Checkpointer.recover_if_possible()
  -> list_checkpoints()
  -> _construct_checkpoint_objects()

Pendant le listing des points de contrôle, SpeechBrain analyse les sous-répertoires nommés CKPT* contenant CKPT.yaml. Chaque fichier de métadonnées candidat est analysé avant la sélection finale du point de contrôle.

L'analyse non sécurisée se produit dans speechbrain.utils.checkpoints.checkpoints.py :

root@kitploit:~
meta = yaml.load(fi, Loader=yaml.Loader)

La preuve de concept crée deux points de contrôle :

  • CKPT+poisoned-metadata : un point de contrôle malveillant plus ancien dont le CKPT.yaml contient une charge utile d'application d'objet PyYAML.
  • CKPT+benign-newer : un point de contrôle bénin plus récent qui devrait être sélectionné par récence.

Le point de contrôle bénin est sélectionné, mais les métadonnées du point de contrôle malveillant s'exécutent toujours pendant le listing des candidats. Cela démontre une exécution de code au moment de l'analyse des métadonnées, indépendamment de la restauration du point de contrôle.

Preuve de concept

package_builder.py crée la disposition des points de contrôle contrôlée par l'attaquant.

run_poc.py exécute la validation, appelle Checkpointer.recover_if_possible() et affiche les preuves d'exécution.

À exécuter uniquement dans un environnement de test local :

root@kitploit:~
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

Preuves attendues sur les versions vulnérables :

root@kitploit:~
speechbrain_version: 1.1.0
installed_package: True
recovery_error: None
benign_checkpoint_selected: True
marker_before_recovery: False
marker_after_recovery: True
marker_contents:
speechbrain_checkpoint_yaml_loader_rce_triggered
success: True

La preuve importante est que benign_checkpoint_selected: True et marker_after_recovery: True apparaissent ensemble. Cela montre que le point de contrôle malveillant plus ancien n'a pas été sélectionné pour la récupération, mais que ses métadonnées ont tout de même été analysées et exécutées pendant que SpeechBrain listait les points de contrôle candidats.

La charge utile est intentionnellement inoffensive. Elle écrit uniquement cette chaîne de marqueur locale :

root@kitploit:~
speechbrain_checkpoint_yaml_loader_rce_triggered

Elle ne lance pas de shell, ne se connecte pas à un service réseau, ne lit pas de secrets, ne supprime pas de données et ne modifie pas de fichiers en dehors du répertoire de la preuve de concept.

Remédiation

Mettez à niveau vers SpeechBrain 1.1.1 ou une version ultérieure.

Le correctif de code durable consiste à utiliser le chargeur sécurisé de PyYAML pour les métadonnées de points de contrôle :

root@kitploit:~
yaml.safe_load(fi)

ou :

root@kitploit:~
yaml.load(fi, Loader=yaml.SafeLoader)

Les métadonnées de points de contrôle ne nécessitent que des valeurs scalaires telles que unixtime et end-of-epoch, la construction d'objets Python ne devrait donc pas être activée pour ce chemin d'analyse.

Si un correctif ou une mise à niveau immédiate n'est pas disponible :

  • N'utilisez pas de répertoires de points de contrôle, d'artefacts de modèles ou d'archives provenant de sources non fiables.
  • Isolez les tâches d'entraînement et d'inférence SpeechBrain avec des privilèges minimaux.
  • Validez ou rejetez les balises et champs inattendus dans CKPT.yaml.
  • Évitez de reprendre automatiquement à partir de répertoires de points de contrôle fournis en externe.

Crédit

Découvert et signalé par Sai Teja Erukude, coordonné via VulnCheck.

Références

  • Enregistrement CVE : https://www.cve.org/CVERecord?id=CVE-2026-10036
  • Avis VulnCheck : https://www.vulncheck.com/advisories/speechbrain-arbitrary-code-execution-via-ckpt-yaml-parsing
  • Notes de version : https://github.com/speechbrain/speechbrain/releases/tag/v1.1.1
  • Pull request : https://github.com/speechbrain/speechbrain/pull/3067
  • Commit du correctif : https://github.com/speechbrain/speechbrain/commit/22a616646a493871401461f80b2d5cf564cb2850
  • Documentation PyYAML : https://pyyaml.org/wiki/PyYAMLDocumentation
  • Procédure pas à pas locale : exploit_walkthrough.md
Télécharger l’outil