Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-10036-speechbrain-rce — SpeechBrain < 1.1.1 RCE tramite metadati dei checkpoint, dovuta a un parsing non sicuro di PyYAML di CKPT.yaml. | Kitploit
Strumenti/GitHubGitHub/saiteja-erukude/cve-2026-10036-speechbrain-rce
Analisi delle VulnerabilitàAnalisi del CodiceExploitPaper e RicercaApprendimento e Formazione
GitHubsaiteja-erukude/cve-2026-10036-speechbrain-rce

CVE-2026-10036-speechbrain-rce

SpeechBrain < 1.1.1 RCE tramite metadati dei checkpoint, dovuta a un parsing non sicuro di PyYAML di CKPT.yaml.

Vedi Repository
4017 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-10036: Esecuzione di codice arbitrario in SpeechBrain tramite il parsing di CKPT.yaml

Gravità: Alta, CVSS 4.0 8.7, CVSS 3.1 8.8 (assegnato da VulnCheck, il CNA)

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

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

Interessato: SpeechBrain < 1.1.1

Corretto in: 1.1.1 / commit 22a6166

CWE: CWE-502 (Deserializzazione di dati non attendibili)

Scoperto e segnalato da: Sai Teja Erukude

Pubblicato: 27 agosto 2026


Riepilogo

SpeechBrain precedente alla versione 1.1.1 utilizza il loader non sicuro di PyYAML durante il parsing dei metadati del checkpoint CKPT.yaml durante il ripristino del checkpoint.

Un attaccante in grado di fornire o modificare una directory di checkpoint di SpeechBrain può inserire un file CKPT.yaml malevolo all'interno di una directory di checkpoint CKPT*. Quando una vittima chiama Checkpointer.recover_if_possible(), SpeechBrain elenca i candidati checkpoint e analizza ogni file di metadati candidato con:

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

Poiché yaml.Loader supporta tag di costruzione di oggetti Python come !!python/object/apply, i metadati dei checkpoint controllati da un attaccante possono eseguire codice Python durante la scoperta dei checkpoint.

Il checkpoint malevolo non deve essere selezionato o ripristinato. L'esecuzione del codice avviene mentre SpeechBrain sta enumerando i candidati checkpoint.

Impatto

Un attaccante può eseguire codice Python arbitrario nel contesto del processo Python che esegue SpeechBrain.

Ciò può influire su flussi di lavoro in cui gli utenti scaricano, estraggono, riprendono o eseguono addestramento/inferenza da directory di checkpoint, artefatti di modello o archivi non attendibili.

A seconda del processo ospitante, ciò può consentire di:

  • Leggere o modificare file accessibili al processo.
  • Accedere a variabili d'ambiente e segreti dell'applicazione.
  • Chiamare servizi interni raggiungibili dall'host.
  • Interrompere processi di addestramento, inferenza o automazione.

Dettaglio tecnico

Il componente interessato è il flusso di recupero/elencazione dei checkpoint di SpeechBrain:

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

Durante l'elenco dei checkpoint, SpeechBrain analizza le directory figlie denominate CKPT* che contengono CKPT.yaml. Ogni file di metadati candidato viene analizzato prima della selezione finale del checkpoint.

L'analisi non sicura avviene in speechbrain.utils.checkpoints.checkpoints.py:

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

Il PoC crea due checkpoint:

  • CKPT+poisoned-metadata: un checkpoint malevolo più vecchio il cui CKPT.yaml contiene un payload PyYAML object-apply.
  • CKPT+benign-newer: un checkpoint benigno più recente che dovrebbe essere selezionato in base alla recency.

Il checkpoint benigno viene selezionato, ma i metadati del checkpoint malevolo vengono comunque eseguiti durante l'elenco dei candidati. Ciò dimostra l'esecuzione di codice al momento del parsing dei metadati indipendentemente dal ripristino del checkpoint.

Proof of Concept

package_builder.py crea il layout del checkpoint controllato dall'attaccante.

run_poc.py esegue la validazione, chiama Checkpointer.recover_if_possible() e stampa le prove di esecuzione.

Eseguire solo in un ambiente di test locale:

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

Prove attese sulle versioni vulnerabili:

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

L'evidenza importante è che benign_checkpoint_selected: True e marker_after_recovery: True compaiono insieme. Questo dimostra che il checkpoint malevolo più vecchio non è stato selezionato per il ripristino, ma i suoi metadati sono stati comunque analizzati ed eseguiti mentre SpeechBrain elencava i candidati checkpoint.

Il payload è intenzionalmente innocuo. Scrive solo questa stringa marker locale:

speechbrain_checkpoint_yaml_loader_rce_triggered

Non genera una shell, non si connette a un servizio di rete, non legge segreti, non elimina dati né modifica file al di fuori della directory PoC.

Remediation

Eseguire l'aggiornamento a SpeechBrain 1.1.1 o versione successiva.

La correzione duratura del codice consiste nell'utilizzare il loader sicuro di PyYAML per i metadati dei checkpoint:

yaml.safe_load(fi)

o:

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

I metadati del checkpoint richiedono solo valori scalari come unixtime e end-of-epoch, quindi la costruzione di oggetti Python non dovrebbe essere abilitata per questo percorso di parsing.

Se una patch o un aggiornamento immediato non è disponibile:

  • Non utilizzare directory di checkpoint, artefatti di modello o archivi provenienti da fonti non attendibili.
  • Isolare i job di training e inferenza di SpeechBrain con privilegi minimi.
  • Convalidare o rifiutare tag e campi imprevisti in CKPT.yaml.
  • Evitare di riprendere automaticamente da directory di checkpoint fornite esternamente.

Crediti

Scoperto e segnalato da Sai Teja Erukude.

La divulgazione è stata coordinata tramite VulnCheck.

Riferimenti

  • Record CVE: https://www.cve.org/CVERecord?id=CVE-2026-10036
  • Avviso VulnCheck: https://www.vulncheck.com/advisories/speechbrain-arbitrary-code-execution-via-ckpt-yaml-parsing
  • Note di rilascio: https://github.com/speechbrain/speechbrain/releases/tag/v1.1.1
  • Pull request: https://github.com/speechbrain/speechbrain/pull/3067
  • Commit della patch: https://github.com/speechbrain/speechbrain/commit/22a616646a493871401461f80b2d5cf564cb2850
  • Documentazione PyYAML: https://pyyaml.org/wiki/PyYAMLDocumentation
  • Walkthrough locale: exploit_walkthrough.md
Scarica lo strumento