Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 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
40vor 17 TagenNoch 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 über CKPT.yaml-Parsing

Schweregrad: Hoch, CVSS 4.0 8.7, CVSS 3.1 8.8 (zugewiesen 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)

Entdeckt und gemeldet von: Sai Teja Erukude

Veröffentlicht: 27. August 2026


Zusammenfassung

SpeechBrain vor 1.1.1 verwendet den unsicheren Loader von PyYAML beim Parsen von CKPT.yaml-Checkpoint-Metadaten während der Checkpoint-Wiederherstellung.

Ein Angreifer, der ein SpeechBrain-Checkpoint-Verzeichnis bereitstellen oder verändern 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:

yaml.load(fi, Loader=yaml.Loader)

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

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

Auswirkung

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

Dies kann Workflows beeinträchtigen, in denen Benutzer Trainings-/Inferenz-Checkpoints aus nicht vertrauenswürdigen Checkpoint-Verzeichnissen, Modellartefakten oder Archiven herunterladen, entpacken, fortsetzen oder ausführen.

Je nach Hosting-Prozess kann dies ermöglichen:

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

Technisches Detail

Die betroffene Komponente ist SpeechBrains Checkpoint-Wiederherstellungs-/Auflistungsablauf:

Checkpointer.recover_if_possible()
  -> list_checkpoints()
  -> _construct_checkpoint_objects()

Beim Auflisten von Checkpoints durchsucht SpeechBrain untergeordnete Verzeichnisse mit dem Namen CKPT*, die CKPT.yaml enthalten. Jede Kandidaten-Metadatendatei wird vor der endgültigen Checkpoint-Auswahl geparst.

Der unsichere Parse-Vorgang findet in speechbrain.utils.checkpoints.checkpoints.py statt:

meta = yaml.load(fi, Loader=yaml.Loader)

The PoC erstellt zwei Checkpoints:

  • CKPT+poisoned-metadata: ein älterer bösartiger Checkpoint, dessen CKPT.yaml eine PyYAML-Object-Apply-Payload enthält.
  • CKPT+benign-newer: ein neuerer gutartiger Checkpoint, der anhand des Aktualitätsdatums ausgewählt werden sollte.

Der gutartige Checkpoint wird ausgewählt, aber die Metadaten des bösartigen Checkpoints werden während der Kandidatenauflistung dennoch ausgeführt. Dies demonstriert eine Codeausführung zur Metadaten-Parse-Zeit, 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:

python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

Erwartete Nachweise bei anfälligen Versionen:

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 Beleg ist, dass benign_checkpoint_selected: True und marker_after_recovery: True gemeinsam auftreten. Dies zeigt, dass der bösartige ältere Checkpoint nicht für die Wiederherstellung ausgewählt wurde, aber seine Metadaten dennoch geparst und ausgeführt wurden, während SpeechBrain Checkpoint-Kandidaten auflistete.

Die Payload ist absichtlich harmlos. Sie schreibt lediglich diese lokale Marker-Zeichenkette:

speechbrain_checkpoint_yaml_loader_rce_triggered

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

Behebung

Aktualisieren Sie auf SpeechBrain 1.1.1 oder höher.

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

yaml.safe_load(fi)

oder:

yaml.load(fi, Loader=yaml.SafeLoader)

Checkpoint-Metadaten benötigen nur skalare Werte wie unixtime und end-of-epoch, daher sollte die Konstruktion von Python-Objekten für diesen Parse-Pfad nicht aktiviert werden.

Wenn kein sofortiger Patch oder Upgrade verfügbar ist:

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

Danksagung

Entdeckt und gemeldet von Sai Teja Erukude.

Die Offenlegung wurde über VulnCheck koordiniert.

Referenzen

  • CVE-Eintrag: https://www.cve.org/CVERecord?id=CVE-2026-10036
  • VulnCheck-Advisory: 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