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-9147-uproot-rce — uproot <= 5.7.4 inyección de código a través de la generación insegura de código fuente de Python a partir de los metadatos de TStreamerInfo de ROOT. | Kitploit
Herramientas/GitHubGitHub/saiteja-erukude/cve-2026-9147-uproot-rce
Generación de PayloadsAnálisis de VulnerabilidadesExplotación
GitHubsaiteja-erukude/cve-2026-9147-uproot-rce

CVE-2026-9147-uproot-rce

uproot <= 5.7.4 inyección de código a través de la generación insegura de código fuente de Python a partir de los metadatos de TStreamerInfo de ROOT.

Ver Repositorio

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 →
26hace 10 díasAún no revisado
Compartir

CVE-2026-9147: Inyección de código en uproot a través de metadatos TStreamerInfo

Gravedad: Alta, CVSS 4.0 8.5, CVSS 3.1 7.8 (asignada por VulnCheck, el CNA)

Vector (v4.0): CVSS:4.0/AV:L/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:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Afectado: uproot <= 5.7.4

Corregido en: 5.7.5 / commit c045c28

CWE: CWE-94 (Control inadecuado de la generación de código, inyección de código); CWE-95 secundaria (inyección de eval)

Descubierto y reportado por: Sai Teja Erukude

Publicado: 18 de julio de 2026


Resumen

uproot 5.7.4 y versiones anteriores generan dinámicamente el código fuente de clases Python a partir de metadatos TStreamerInfo de ROOT y lo compilan en tiempo de ejecución.

Algunos campos de metadatos de streamer controlados por el archivo se interpolan en el código fuente Python generado sin un entrecomillado seguro. Un atacante que pueda proporcionar un archivo ROOT manipulado puede inyectar contenido que rompe expresiones Python en los metadatos del streamer, como un nombre de elemento manipulado.

Cuando una aplicación afectada abre el archivo ROOT manipulado y uproot genera e invoca el método lector correspondiente, la expresión Python inyectada puede ejecutarse en el contexto del proceso anfitrión.

Impacto

Un atacante puede ejecutar código Python arbitrario en aplicaciones que abren o procesan archivos ROOT controlados por el atacante mediante rutas de código de uproot afectadas.

Dependiendo de la aplicación, esto puede permitir:

  • Leer o modificar archivos accesibles al proceso.
  • Acceder a variables de entorno y secretos de la aplicación.
  • Llamar a servicios internos accesibles desde el host.
  • Interrumpir trabajos de procesamiento de datos o el comportamiento de la aplicación.

Detalle técnico

El problema está en la ruta de generación de código fuente de uproot para metadatos de streamer de ROOT.

La PoC crea un archivo ROOT que contiene metadatos TStreamerInfo manipulados para una clase ExploitTarget. El nombre del elemento de streamer manipulado escapa de la expresión generada e inyecta una llamada benigna a pathlib.

El comportamiento reportado es:

  1. uproot abre el archivo ROOT manipulado.
  2. uproot lee los metadatos TStreamerInfo respaldados por el archivo.
  3. uproot genera el código fuente de la clase Python para ExploitTarget.
  4. El código fuente de la clase generada contiene la expresión inyectada.
  5. La invocación del método read_members generado ejecuta la expresión inyectada.

Prueba de concepto

root_file_builder.py crea malicious_tstreamerinfo.root con metadatos de streamer manipulados.

run_poc.py abre el archivo con uproot, fuerza la generación de la clase ExploitTarget respaldada por el archivo, invoca el método read_members generado y verifica la evidencia del archivo marcador.

Ejecutar únicamente 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:

uproot_version: 5.7.4
file_backed_element_name_contains_payload: True
class_code_contains_injected_pathlib_call: True
expected_exception: True
exception_type: DeserializationError
marker_exists: True
marker_contents:
executed through uproot generated read_members
success: True

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

executed through uproot generated read_members

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 uproot 5.7.5 o posterior.

Si la actualización inmediata no es posible:

  • No procese archivos ROOT de usuarios no confiables.
  • Aísle los trabajos de procesamiento de archivos ROOT con privilegios mínimos.
  • Valide o rechace metadatos TStreamerInfo inesperados antes del procesamiento.
  • Evite los flujos de trabajo que abren automáticamente archivos ROOT subidos o proporcionados externamente.

Cronología de divulgación

FechaEvento
20 de mayo de 2026Vulnerabilidad enviada a VulnCheck
20 de mayo de 2026VulnCheck inició el contacto; CVE-2026-9147 asignado provisionalmente
5 de julio de 2026uproot 5.7.5 publicado con el parche
18 de julio de 2026CVE-2026-9147 publicado

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-9147
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-9147
  • Aviso de VulnCheck: https://www.vulncheck.com/advisories/uproot-and-before-code-injection-via-tstreamerinfo-metadata
  • Aviso de GitHub: https://github.com/scikit-hep/uproot5/security/advisories/GHSA-6946-mq52-g438
  • Commit del parche: https://github.com/scikit-hep/uproot5/commit/c045c2824295d907d2e705f31110c742928e50e7
  • Proyecto uproot: https://github.com/scikit-hep/uproot5
Descargar herramienta