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

CVE-2026-9147: inyección de código en uproot mediante metadatos TStreamerInfo

Gravedad: Alta, CVSS 4.0 8.5, CVSS 3.1 7.8 (asignada por VulnCheck, la 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

Afectados: 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)

Reportado por: Sai Teja Erukude

CNA: VulnCheck

Publicado: 18 de julio de 2026


Resumen

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

5.7.4
TStreamerInfo

Algunos campos de metadatos de streamer controlados por el archivo se interpolan en el código fuente de Python generado sin un escape seguro. Un atacante que pueda proporcionar un archivo ROOT manipulado puede inyectar contenido que rompe expresiones de 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 de lectura correspondiente, la expresión de 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 para el proceso.
  • Acceder a las 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 se encuentra en la ruta de código fuente generado de uproot para los metadatos de streamer de ROOT.

La PoC crea un archivo ROOT que contiene metadatos TStreamerInfo manipulados para una clase ExploitTarget. El nombre manipulado del elemento streamer 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 de Python para ExploitTarget.
  4. El código fuente de la clase generada contiene la expresión inyectada.
  5. La invocación del método generado read_members 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 generado read_members y verifica la evidencia del archivo marcador.

Ejecutar únicamente en un entorno de pruebas 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:~
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:

root@kitploit:~
executed through uproot generated read_members

No lanza un shell, no se conecta a un servicio de red, no lee secretos, no elimina datos ni modifica archivos fuera del directorio de la 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 de procesarlos.
  • Evite flujos de trabajo que abran automáticamente archivos ROOT cargados 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é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-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