Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-10036-speechbrain-rce — SpeechBrain < 1.1.1 Checkpoint-Metadaten RCE durch unsicheres PyYAML-Parsing von CKPT.yaml. | Kitploit
Tools/GitHubGitHub/saiteja-erukude/cve-2026-10036-speechbrain-rce
SchwachstellenanalyseCode-AnalyseExploitationPapers & ForschungLernen & Bildung
GitHubsaiteja-erukude/cve-2026-10036-speechbrain-rce

CVE-2026-10036-speechbrain-rce

SpeechBrain < 1.1.1 Checkpoint-Metadaten RCE durch unsicheres PyYAML-Parsing von CKPT.yaml.

Repository anzeigen
vor 6h 59mNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-10036: SpeechBrain – Beliebige Codeausführung durch CKPT.yaml-Parsing

Schweregrad: Hoch, CVSS 4.0 8.7, CVSS 3.1 8.8 (vergeben von VulnCheck, der CNA)

Vektor (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

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

Betroffen: SpeechBrain < 1.1.1

Behoben in: 1.1.1 / Commit 22a6166

CWE: CWE-502 (Deserialisierung nicht vertrauenswürdiger Daten)

Gemeldet von: Sai Teja Erukude

CNA: VulnCheck

Veröffentlicht: 27. August 2026


Zusammenfassung

SpeechBrain vor verwendet PyYAMLs unsicheren Loader beim Parsen von -Checkpoint-Metadaten während der Checkpoint-Wiederherstellung.

1.1.1
CKPT.yaml

Ein Angreifer, der ein SpeechBrain-Checkpoint-Verzeichnis bereitstellen oder modifizieren kann, kann eine bösartige CKPT.yaml-Datei in einem CKPT*-Checkpoint-Verzeichnis platzieren. Wenn ein Opfer Checkpointer.recover_if_possible() aufruft, listet SpeechBrain Checkpoint-Kandidaten auf und parst jede Kandidaten-Metadatendatei mit:

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

Da yaml.Loader Python-Objektkonstruktions-Tags wie !!python/object/apply unterstützt, können vom Angreifer kontrollierte Checkpoint-Metadaten während der Checkpoint-Erkennung Python-Code ausführen.

Der bösartige Checkpoint muss nicht ausgewählt oder wiederhergestellt werden. Die Codeausführung erfolgt, während SpeechBrain Checkpoint-Kandidaten aufzählt.

Auswirkungen

Ein Angreifer kann beliebigen Python-Code im Kontext des Python-Prozesses ausführen, der SpeechBrain ausführt.

Dies kann Workflows betreffen, in denen Benutzer Checkpoint-Verzeichnisse, Modellartefakte oder Archive aus nicht vertrauenswürdigen Quellen herunterladen, entpacken, fortsetzen oder Training/Inferenz daraus ausführen.

Abhängig vom Hosting-Prozess kann dies Folgendes ermöglichen:

  • Lesen oder Ändern von Dateien, auf die der Prozess zugreifen kann.
  • Zugriff auf Umgebungsvariablen und Anwendungsgeheimnisse.
  • Aufrufen interner Dienste, die vom Host erreichbar sind.
  • Stören von Trainings-, Inferenz- oder Automatisierungsaufträgen.

Technisches Detail

Die betroffene Komponente ist der Checkpoint-Wiederherstellungs-/Auflistungsablauf von SpeechBrain:

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

Während der Checkpoint-Auflistung scannt SpeechBrain Unterverzeichnisse mit dem Namen CKPT*, die CKPT.yaml enthalten. Jede Kandidaten-Metadatendatei wird vor der endgültigen Checkpoint-Auswahl geparst.

Das unsichere Parsen erfolgt in speechbrain.utils.checkpoints.checkpoints.py:

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

Der PoC erstellt zwei Checkpoints:

  • CKPT+poisoned-metadata: ein älterer bösartiger Checkpoint, dessen CKPT.yaml ein PyYAML-Objekt-Apply-Payload enthält.
  • CKPT+benign-newer: ein neuerer harmloser Checkpoint, der nach Aktualität ausgewählt werden sollte.

Der harmlose Checkpoint wird ausgewählt, aber die bösartigen Checkpoint-Metadaten werden während der Kandidatenauflistung trotzdem ausgeführt. Dies demonstriert eine Codeausführung zum Zeitpunkt des Metadaten-Parsings, unabhängig von der Checkpoint-Wiederherstellung.

Proof of Concept

package_builder.py erstellt das vom Angreifer kontrollierte Checkpoint-Layout.

run_poc.py führt die Validierung aus, ruft Checkpointer.recover_if_possible() auf und gibt Ausführungsnachweise aus.

Nur in einer lokalen Testumgebung ausführen:

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

Erwartete Nachweise auf verwundbaren Versionen:

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

Der wichtige Nachweis ist, dass benign_checkpoint_selected: True und marker_after_recovery: True zusammen auftreten. Dies zeigt, dass der bösartige ältere Checkpoint nicht für die Wiederherstellung ausgewählt wurde, seine Metadaten aber dennoch geparst und ausgeführt wurden, während SpeechBrain Checkpoint-Kandidaten auflistete.

Das Payload ist absichtlich harmlos. Es schreibt nur diese lokale Markierungszeichenfolge:

root@kitploit:~
speechbrain_checkpoint_yaml_loader_rce_triggered

Es startet keine Shell, verbindet sich nicht mit einem Netzwerkdienst, liest keine Geheimnisse, löscht keine Daten und ändert keine Dateien außerhalb des PoC-Verzeichnisses.

Abhilfe

Upgrade auf SpeechBrain 1.1.1 oder höher.

Die dauerhafte Code-Korrektur besteht darin, PyYAMLs sicheren Loader für Checkpoint-Metadaten zu verwenden:

root@kitploit:~
yaml.safe_load(fi)

oder:

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

Checkpoint-Metadaten benötigen nur Skalarwerte wie unixtime und end-of-epoch, daher sollte die Python-Objektkonstruktion für diesen Parse-Pfad nicht aktiviert sein.

Falls ein sofortiger Patch oder ein Upgrade nicht verfügbar ist:

  • Verwenden Sie keine Checkpoint-Verzeichnisse, Modellartefakte oder Archive aus nicht vertrauenswürdigen Quellen.
  • Isolieren Sie SpeechBrain-Trainings- und Inferenzaufträge mit minimalen Berechtigungen.
  • Validieren oder lehnen Sie unerwartete Tags und Felder in CKPT.yaml ab.
  • Vermeiden Sie das automatische Fortsetzen aus extern bereitgestellten Checkpoint-Verzeichnissen.

Anerkennung

Entdeckt und gemeldet von Sai Teja Erukude, koordiniert über VulnCheck.

Referenzen

  • CVE-Eintrag: https://www.cve.org/CVERecord?id=CVE-2026-10036
  • VulnCheck-Advice: https://www.vulncheck.com/advisories/speechbrain-arbitrary-code-execution-via-ckpt-yaml-parsing
  • Versionshinweise: https://github.com/speechbrain/speechbrain/releases/tag/v1.1.1
  • Pull Request: https://github.com/speechbrain/speechbrain/pull/3067
  • Patch-Commit: https://github.com/speechbrain/speechbrain/commit/22a616646a493871401461f80b2d5cf564cb2850
  • PyYAML-Dokumentation: https://pyyaml.org/wiki/PyYAMLDocumentation
  • Lokale Schritt-für-Schritt-Anleitung: exploit_walkthrough.md
Tool herunterladen