Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-10036-speechbrain-rce — SpeechBrain < 1.1.1 RCE via metadados de checkpoint por análise insegura de PyYAML do CKPT.yaml. | Kitploit
Ferramentas/GitHubGitHub/saiteja-erukude/cve-2026-10036-speechbrain-rce
Análise de VulnerabilidadesAnálise de CódigoExploraçãoPapers e PesquisaAprendizado e Educação
GitHubsaiteja-erukude/cve-2026-10036-speechbrain-rce

CVE-2026-10036-speechbrain-rce

SpeechBrain < 1.1.1 RCE via metadados de checkpoint por análise insegura de PyYAML do CKPT.yaml.

Ver Repositório
há 7h 3mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-10036: Execução Arbitrária de Código no SpeechBrain via Parsing de CKPT.yaml

Gravidade: Alta, CVSS 4.0 8.7, CVSS 3.1 8.8 (atribuída pela VulnCheck, a CNA)

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

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

Afetado: SpeechBrain < 1.1.1

Corrigido em: 1.1.1 / commit 22a6166

CWE: CWE-502 (Desserialização de Dados Não Confiáveis)

Reportado por: Sai Teja Erukude

CNA: VulnCheck

Publicado: 27 de agosto de 2026


Resumo

O SpeechBrain anterior à versão 1.1.1 usa o loader inseguro do PyYAML ao analisar os metadados de durante a recuperação de checkpoints.

CKPT.yaml

Um atacante que possa fornecer ou modificar um diretório de checkpoints do SpeechBrain pode colocar um arquivo CKPT.yaml malicioso dentro de um diretório de checkpoint CKPT*. Quando uma vítima chama Checkpointer.recover_if_possible(), o SpeechBrain lista os candidatos a checkpoint e analisa os metadados de cada candidato com:

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

Como yaml.Loader suporta tags de construção de objetos Python, como !!python/object/apply, metadados de checkpoint controlados pelo atacante podem executar código Python durante a descoberta de checkpoints.

O checkpoint malicioso não precisa ser selecionado ou restaurado. A execução de código ocorre enquanto o SpeechBrain enumera os candidatos a checkpoint.

Impacto

Um atacante pode executar código Python arbitrário no contexto do processo Python que executa o SpeechBrain.

Isso pode afetar fluxos de trabalho onde usuários baixam, descompactam, retomam ou executam treinamento/inferência a partir de diretórios de checkpoints, artefatos de modelo ou arquivos não confiáveis.

Dependendo do processo hospedeiro, isso pode permitir:

  • Ler ou modificar arquivos acessíveis ao processo.
  • Acessar variáveis de ambiente e segredos da aplicação.
  • Chamar serviços internos acessíveis a partir do host.
  • Interromper trabalhos de treinamento, inferência ou automação.

Detalhe Técnico

O componente afetado é o fluxo de recuperação/lista de checkpoints do SpeechBrain:

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

Durante a listagem de checkpoints, o SpeechBrain verifica subdiretórios nomeados CKPT* que contêm CKPT.yaml. Cada arquivo de metadados candidato é analisado antes da seleção final do checkpoint.

O parsing inseguro ocorre em speechbrain.utils.checkpoints.checkpoints.py:

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

O PoC cria dois checkpoints:

  • CKPT+poisoned-metadata: um checkpoint malicioso mais antigo cujo CKPT.yaml contém um payload de object-apply do PyYAML.
  • CKPT+benign-newer: um checkpoint benigno mais recente que deve ser selecionado por recência.

O checkpoint benigno é selecionado, mas os metadados do checkpoint malicioso ainda executam durante a listagem de candidatos. Isso demonstra execução de código no momento do parsing de metadados, independente da restauração do checkpoint.

Prova de Conceito

package_builder.py cria o layout de checkpoints controlado pelo atacante.

run_poc.py executa a validação, chama Checkpointer.recover_if_possible() e imprime as evidências de execução.

Execute apenas em um ambiente de teste local:

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

Evidências esperadas em versões vulneráveis:

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

A evidência importante é que benign_checkpoint_selected: True e marker_after_recovery: True aparecem juntos. Isso mostra que o checkpoint malicioso mais antigo não foi selecionado para recuperação, mas seus metadados ainda foram analisados e executados enquanto o SpeechBrain listava os candidatos a checkpoint.

O payload é intencionalmente inofensivo. Ele apenas escreve esta string de marcador local:

root@kitploit:~
speechbrain_checkpoint_yaml_loader_rce_triggered

Ele não abre um shell, não se conecta a um serviço de rede, não lê segredos, não exclui dados nem modifica arquivos fora do diretório do PoC.

Remediação

Atualize para o SpeechBrain 1.1.1 ou posterior.

A correção durável no código é usar o loader seguro do PyYAML para metadados de checkpoint:

root@kitploit:~
yaml.safe_load(fi)

ou:

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

Os metadados de checkpoint precisam apenas de valores escalares, como unixtime e end-of-epoch, portanto a construção de objetos Python não deve ser habilitada para este caminho de parsing.

Se um patch ou atualização imediata não estiver disponível:

  • Não use diretórios de checkpoints, artefatos de modelo ou arquivos de fontes não confiáveis.
  • Isole trabalhos de treinamento e inferência do SpeechBrain com privilégios mínimos.
  • Valide ou rejeite tags e campos inesperados em CKPT.yaml.
  • Evite retomar automaticamente de diretórios de checkpoints fornecidos externamente.

Crédito

Descoberto e reportado por Sai Teja Erukude, coordenado através da VulnCheck.

Referências

  • Registro CVE: https://www.cve.org/CVERecord?id=CVE-2026-10036
  • Aviso da VulnCheck: https://www.vulncheck.com/advisories/speechbrain-arbitrary-code-execution-via-ckpt-yaml-parsing
  • Notas de versão: https://github.com/speechbrain/speechbrain/releases/tag/v1.1.1
  • Pull request: https://github.com/speechbrain/speechbrain/pull/3067
  • Commit do patch: https://github.com/speechbrain/speechbrain/commit/22a616646a493871401461f80b2d5cf564cb2850
  • Documentação do PyYAML: https://pyyaml.org/wiki/PyYAMLDocumentation
  • Passo a passo local: exploit_walkthrough.md
Baixar ferramenta