Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 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
6h 59m 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 Arbitraria di Codice in SpeechBrain tramite Parsing di CKPT.yaml

Gravità: Alta, CVSS 4.0 8.7, CVSS 3.1 8.8 (assegnata 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

Interessati: SpeechBrain < 1.1.1

Corretto in: 1.1.1 / commit 22a6166

CWE: CWE-502 (Deserializzazione di Dati Non Attendibili)

Segnalato da: Sai Teja Erukude

CNA: VulnCheck

Pubblicato: 27 agosto 2026


Riepilogo

SpeechBrain precedente alla versione utilizza il loader non sicuro di PyYAML durante il parsing dei metadati del checkpoint nel recupero dei checkpoint.

1.1.1
CKPT.yaml

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

root@kitploit:~
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 dall'attaccante possono eseguire codice Python durante l'individuazione dei checkpoint.

Il checkpoint dannoso non deve essere selezionato o ripristinato. L'esecuzione del codice avviene mentre SpeechBrain enumera i checkpoint candidati.

Impatto

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

Ciò può influenzare i flussi di lavoro in cui gli utenti scaricano, estraggono, riprendono o eseguono training/inferenza da directory di checkpoint, artefatti di modelli o archivi non attendibili.

A seconda del processo host, ciò può consentire:

  • Lettura o modifica di file accessibili al processo.
  • Accesso a variabili d'ambiente e segreti dell'applicazione.
  • Chiamata a servizi interni raggiungibili dall'host.
  • Interruzione di job di training, inferenza o automazione.

Dettaglio Tecnico

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

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

Durante l'elencazione dei checkpoint, SpeechBrain esamina le sottodirectory denominate CKPT* che contengono CKPT.yaml. Ogni file di metadati candidato viene analizzato prima della selezione finale del checkpoint.

Il parsing non sicuro avviene in speechbrain.utils.checkpoints.checkpoints.py:

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

La PoC crea due checkpoint:

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

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

Proof of Concept

package_builder.py crea il layout dei 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:

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

Prove attese sulle versioni vulnerabili:

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 prova importante è che benign_checkpoint_selected: True e marker_after_recovery: True compaiono insieme. Ciò dimostra che il checkpoint dannoso più vecchio non è stato selezionato per il recupero, ma i suoi metadati sono stati comunque analizzati ed eseguiti mentre SpeechBrain elencava i checkpoint candidati.

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

root@kitploit:~
speechbrain_checkpoint_yaml_loader_rce_triggered

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

Rimedio

Aggiornare a SpeechBrain 1.1.1 o successivo.

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

root@kitploit:~
yaml.safe_load(fi)

oppure:

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

I metadati dei 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 modelli o archivi provenienti da fonti non attendibili.
  • Isolare i job di training e inferenza di SpeechBrain con privilegi minimi.
  • Validare o rifiutare tag e campi inattesi in CKPT.yaml.
  • Evitare la ripresa automatica da directory di checkpoint fornite esternamente.

Crediti

Scoperto e segnalato da Sai Teja Erukude, coordinato tramite VulnCheck.

Riferimenti

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