Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-9147-uproot-rce — Injection de code dans uproot <= 5.7.4 via une génération non sécurisée de code source Python à partir des métadonnées TStreamerInfo de ROOT. | Kitploit
Outils/GitHubGitHub/saiteja-erukude/cve-2026-9147-uproot-rce
Génération de PayloadsAnalyse des VulnérabilitésExploitation
GitHubsaiteja-erukude/cve-2026-9147-uproot-rce

CVE-2026-9147-uproot-rce

Injection de code dans uproot <= 5.7.4 via une génération non sécurisée de code source Python à partir des métadonnées TStreamerInfo de ROOT.

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
26il y a 11 joursPas encore vérifié
Partager

CVE-2026-9147 : injection de code dans uproot via les métadonnées TStreamerInfo

Gravité : Élevée, CVSS 4.0 8.5, CVSS 3.1 7.8 (attribuée par VulnCheck, le CNA)

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

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

Affecté : uproot <= 5.7.4

Corrigé dans : 5.7.5 / commit c045c28

CWE : CWE-94 (Contrôle inapproprié de la génération de code, injection de code) ; CWE-95 secondaire (injection par eval)

Découvert et signalé par : Sai Teja Erukude

Publié : 18 juillet 2026


Résumé

uproot 5.7.4 et les versions antérieures génèrent dynamiquement le code source de classes Python à partir des métadonnées ROOT TStreamerInfo et le compilent à l'exécution.

Certains champs de métadonnées de streamer contrôlés par le fichier sont interpolés dans le code source Python généré sans échappement sûr. Un attaquant capable de fournir un fichier ROOT forgé peut injecter du contenu cassant les expressions Python dans les métadonnées de streamer, par exemple via un nom d'élément forgé.

Lorsqu'une application affectée ouvre le fichier ROOT forgé et qu'uproot génère puis invoque la méthode de lecture correspondante, l'expression Python injectée peut s'exécuter dans le contexte du processus hôte.

Impact

Un attaquant peut exécuter du code Python arbitraire dans les applications qui ouvrent ou traitent des fichiers ROOT contrôlés par l'attaquant via les chemins de code uproot affectés.

Selon l'application, cela peut permettre :

  • La lecture ou la modification de fichiers accessibles au processus.
  • L'accès aux variables d'environnement et aux secrets de l'application.
  • L'appel de services internes joignables depuis l'hôte.
  • La perturbation de tâches de traitement de données ou du comportement de l'application.

Détail technique

Le problème se situe dans le chemin de génération de code source d'uproot pour les métadonnées de streamer ROOT.

Le PoC crée un fichier ROOT contenant des métadonnées TStreamerInfo forgées pour une classe ExploitTarget. Le nom d'élément de streamer forgé sort de l'expression générée et injecte un appel pathlib bénin.

Le comportement signalé est le suivant :

  1. uproot ouvre le fichier ROOT forgé.
  2. uproot lit les métadonnées TStreamerInfo issues du fichier.
  3. uproot génère le code source de la classe Python pour ExploitTarget.
  4. Le code source de la classe générée contient l'expression injectée.
  5. L'invocation de la méthode read_members générée exécute l'expression injectée.

Preuve de concept

root_file_builder.py crée malicious_tstreamerinfo.root avec des métadonnées de streamer forgées.

run_poc.py ouvre le fichier avec uproot, force la génération de la classe ExploitTarget issue du fichier, invoque la méthode read_members générée et vérifie la présence du fichier marqueur.

À exécuter uniquement dans un environnement de test local :

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

Preuves attendues sur les versions vulnérables :

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 charge utile est intentionnellement inoffensive. Elle écrit uniquement cette chaîne de marqueur locale :

executed through uproot generated read_members

Il ne lance pas de shell, ne se connecte pas à un service réseau, ne lit pas de secrets, ne supprime pas de données et ne modifie pas de fichiers en dehors du répertoire PoC.

Remédiation

Mettez à niveau vers uproot 5.7.5 ou une version ultérieure.

Si une mise à niveau immédiate n'est pas possible :

  • Ne traitez pas de fichiers ROOT provenant d'utilisateurs non fiables.
  • Isolez les tâches de traitement de fichiers ROOT avec des privilèges minimaux.
  • Validez ou rejetez les métadonnées TStreamerInfo inattendues avant le traitement.
  • Évitez les workflows qui ouvrent automatiquement des fichiers ROOT téléversés ou fournis de l'extérieur.

Chronologie de divulgation

DateÉvénement
20 mai 2026Vulnérabilité soumise à VulnCheck
20 mai 2026VulnCheck a initié la prise de contact ; CVE-2026-9147 attribué provisoirement
5 juillet 2026uproot 5.7.5 publié avec le correctif
18 juillet 2026CVE-2026-9147 publié

Crédit

Découverte et signalée par Sai Teja Erukude.

La divulgation a été coordonnée via VulnCheck.

Références

  • Enregistrement CVE : https://www.cve.org/CVERecord?id=CVE-2026-9147
  • NVD : https://nvd.nist.gov/vuln/detail/CVE-2026-9147
  • Avis VulnCheck : https://www.vulncheck.com/advisories/uproot-and-before-code-injection-via-tstreamerinfo-metadata
  • Avis GitHub : https://github.com/scikit-hep/uproot5/security/advisories/GHSA-6946-mq52-g438
  • Commit du correctif : https://github.com/scikit-hep/uproot5/commit/c045c2824295d907d2e705f31110c742928e50e7
  • Projet uproot : https://github.com/scikit-hep/uproot5
Télécharger l’outil