Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 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
hace 7h 6mAú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 Arbitraria de Código en SpeechBrain mediante el Análisis de CKPT.yaml

Gravedad: Alta, CVSS 4.0 8.7, CVSS 3.1 8.8 (asignado por VulnCheck, la 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

Afectado: SpeechBrain < 1.1.1

Corregido en: 1.1.1 / commit 22a6166

CWE: CWE-502 (Deserialización de Datos No Confiables)

Reportado por: Sai Teja Erukude

CNA: VulnCheck

Publicado: 27 de agosto de 2026


Resumen

SpeechBrain anterior a utiliza el cargador inseguro de PyYAML al analizar los metadatos de durante la recuperación de puntos de control.

1.1.1
CKPT.yaml

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

root@kitploit:~
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 puntos de control controlados por el atacante pueden ejecutar código Python durante el descubrimiento de puntos de control.

El punto de control malicioso no necesita ser seleccionado o restaurado. La ejecución de código ocurre mientras SpeechBrain enumera los candidatos de puntos de control.

Impacto

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

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

Dependiendo del proceso de alojamiento, 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/enumeración de puntos de control de SpeechBrain:

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

Durante la enumeración de puntos de control, SpeechBrain escanea los subdirectorios llamados CKPT* que contienen CKPT.yaml. Cada archivo de metadatos candidato se analiza antes de la selección final del punto de control.

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

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

El PoC crea dos puntos de control:

  • CKPT+poisoned-metadata: un punto de control malicioso más antiguo cuyo CKPT.yaml contiene una carga útil de aplicación de objeto PyYAML.
  • CKPT+benign-newer: un punto de control benigno más reciente que debería ser seleccionado por antigüedad.

El punto de control benigno es seleccionado, pero los metadatos del punto de control malicioso aún se ejecutan durante la enumeración de candidatos. Esto demuestra la ejecución de código en tiempo de análisis de metadatos independiente de la restauración del punto de control.

Prueba de Concepto

package_builder.py crea el diseño de puntos de control 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:

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

Evidencia esperada en versiones vulnerables:

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

La carga útil es intencionalmente inofensiva. Solo escribe esta cadena de marcador local:

root@kitploit:~
speechbrain_checkpoint_yaml_loader_rce_triggered

No inicia 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 de código duradera es usar el cargador seguro de PyYAML para los metadatos de puntos de control:

root@kitploit:~
yaml.safe_load(fi)

o:

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

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

Si un parche o actualización inmediata no está disponible:

  • No utilice directorios de puntos de control, artefactos de modelos o 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 puntos de control suministrados externamente.

Crédito

Descubierto y reportado por Sai Teja Erukude, coordinado 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
  • Solicitud de extracción: 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