Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-10036-speechbrain-rce — SpeechBrain < 1.1.1 RCE a través de metadatos de checkpoint mediante análisis inseguro de PyYAML de CKPT.yaml. | Kitploit
Herramientas/GitHubGitHub/saiteja-erukude/cve-2026-10036-speechbrain-rce
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónPapers e InvestigaciónAprendizaje y Educación
GitHubsaiteja-erukude/cve-2026-10036-speechbrain-rce

CVE-2026-10036-speechbrain-rce

SpeechBrain < 1.1.1 RCE a través de metadatos de checkpoint mediante análisis inseguro de PyYAML de CKPT.yaml.

Ver Repositorio
40hace 17 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-10036: Ejecución de código arbitrario en SpeechBrain mediante el análisis de CKPT.yaml

Gravedad: Alta, CVSS 4.0 8.7, CVSS 3.1 8.8 (asignada por VulnCheck, el CNA)

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

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

Afecta a: SpeechBrain < 1.1.1

Corregido en: 1.1.1 / commit 22a6166

CWE: CWE-502 (Deserialización de datos no confiables)

Descubierto y reportado por: Sai Teja Erukude

Publicado: 27 de agosto de 2026


Resumen

SpeechBrain anterior a 1.1.1 utiliza el cargador inseguro de PyYAML al analizar los metadatos del checkpoint CKPT.yaml durante la recuperación de checkpoints.

Un atacante que pueda proporcionar o modificar un directorio de checkpoint de SpeechBrain puede colocar un archivo CKPT.yaml malicioso dentro de un directorio de checkpoint CKPT*. Cuando una víctima llama a Checkpointer.recover_if_possible(), SpeechBrain enumera los checkpoints candidatos y analiza cada archivo de metadatos candidato con:

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

Debido a que yaml.Loader admite etiquetas de construcción de objetos de Python como !!python/object/apply, los metadatos de checkpoint controlados por el atacante pueden ejecutar código Python durante el descubrimiento de checkpoints.

El checkpoint malicioso no necesita ser seleccionado ni restaurado. La ejecución de código ocurre mientras SpeechBrain está enumerando los candidatos a checkpoint.

Impacto

Un atacante puede ejecutar código Python arbitrario en el contexto del proceso de Python que ejecuta SpeechBrain.

Esto puede afectar flujos de trabajo en los que los usuarios descargan, descomprimen, reanudan o ejecutan entrenamiento/inferencia desde directorios de checkpoints, artefactos de modelos o archivos no confiables.

Dependiendo del proceso anfitrión, esto puede permitir:

  • Leer o modificar archivos accesibles para el proceso.
  • Acceder a variables de entorno y secretos de la aplicación.
  • Llamar a servicios internos accesibles desde el host.
  • Interrumpir trabajos de entrenamiento, inferencia o automatización.

Detalle técnico

El componente afectado es el flujo de recuperación/listado de checkpoints de SpeechBrain:

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

Durante el listado de checkpoints, SpeechBrain escanea los directorios hijos llamados CKPT* que contienen CKPT.yaml. Cada archivo de metadatos candidato se analiza antes de la selección final del checkpoint.

El análisis inseguro ocurre en speechbrain.utils.checkpoints.checkpoints.py:

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

El PoC crea dos checkpoints:

  • CKPT+poisoned-metadata: un checkpoint malicioso más antiguo cuyo CKPT.yaml contiene un payload de aplicación de objetos de PyYAML.
  • CKPT+benign-newer: un checkpoint benigno más reciente que debería ser seleccionado por antigüedad.

Se selecciona el checkpoint benigno, pero los metadatos del checkpoint malicioso aún se ejecutan durante el listado de candidatos. Esto demuestra la ejecución de código en tiempo de análisis de metadatos, independientemente de la restauración del checkpoint.

Prueba de concepto

package_builder.py crea el diseño del checkpoint controlado por el atacante.

run_poc.py ejecuta la validación, llama a Checkpointer.recover_if_possible() e imprime la evidencia de ejecución.

Ejecutar solo en un entorno de prueba local:

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

Evidencia esperada en versiones vulnerables:

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 evidencia importante es que benign_checkpoint_selected: True y marker_after_recovery: True aparecen juntos. Esto demuestra que el checkpoint malicioso más antiguo no fue seleccionado para la recuperación, pero sus metadatos aun así fueron analizados y ejecutados mientras SpeechBrain listaba los candidatos a checkpoint.

El payload es intencionalmente inofensivo. Solo escribe esta cadena de marcador local:

speechbrain_checkpoint_yaml_loader_rce_triggered

No genera un shell, no se conecta a un servicio de red, no lee secretos, no elimina datos ni modifica archivos fuera del directorio del PoC.

Remediación

Actualice a SpeechBrain 1.1.1 o posterior.

La corrección duradera del código consiste en utilizar el cargador seguro de PyYAML para los metadatos del checkpoint:

yaml.safe_load(fi)

o:

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

Los metadatos del checkpoint solo necesitan valores escalares como unixtime y end-of-epoch, por lo que la construcción de objetos de Python no debería habilitarse para esta ruta de análisis.

Si no hay disponible un parche o una actualización inmediata:

  • No utilice directorios de checkpoint, artefactos de modelo ni archivos de fuentes no confiables.
  • Aísle los trabajos de entrenamiento e inferencia de SpeechBrain con privilegios mínimos.
  • Valide o rechace etiquetas y campos inesperados en CKPT.yaml.
  • Evite reanudar automáticamente desde directorios de checkpoint proporcionados externamente.

Créditos

Descubierto y reportado por Sai Teja Erukude.

La divulgación se coordinó a través de VulnCheck.

Referencias

  • Registro CVE: https://www.cve.org/CVERecord?id=CVE-2026-10036
  • Aviso de VulnCheck: https://www.vulncheck.com/advisories/speechbrain-arbitrary-code-execution-via-ckpt-yaml-parsing
  • Notas de la versión: https://github.com/speechbrain/speechbrain/releases/tag/v1.1.1
  • Pull request: https://github.com/speechbrain/speechbrain/pull/3067
  • Commit del parche: https://github.com/speechbrain/speechbrain/commit/22a616646a493871401461f80b2d5cf564cb2850
  • Documentación de PyYAML: https://pyyaml.org/wiki/PyYAMLDocumentation
  • Guía local: exploit_walkthrough.md
Descargar herramienta