Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 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 →
2il y a 25 joursPas encore vérifié
Partager

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

Sévérité : Élevée, CVSS 4.0 8.5, CVSS 3.1 7.8 (attribuée par VulnCheck, l'ACN)

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

Versions affectées : uproot <= 5.7.4

Corrigé dans : 5.7.5 / commit c045c28

CWE : CWE-94 (contrôle inadéquat de la génération de code, injection de code) ; CWE-95 secondaire (injection Eval)

Signalé par : Sai Teja Erukude

CNA : VulnCheck

Publié : 18 juillet 2026


Résumé

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

5.7.4
TStreamerInfo

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 spécialement conçu peut injecter dans les métadonnées de streamer un contenu qui brise les expressions Python, comme un nom d'élément spécialement conçu.

Lorsqu'une application affectée ouvre le fichier ROOT spécialement conçu et que 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 affectés d'uproot.

Selon l'application, cela peut permettre :

  • De lire ou de modifier les fichiers accessibles au processus.
  • D'accéder aux variables d'environnement et aux secrets de l'application.
  • D'appeler des services internes accessibles depuis l'hôte.
  • De perturber les tâches de traitement de données ou le 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 de ROOT.

La preuve de concept crée un fichier ROOT contenant des métadonnées TStreamerInfo spécialement conçues pour une classe ExploitTarget. Le nom d'élément de streamer spécialement conçu sort de l'expression générée et injecte un appel pathlib bénin.

Le comportement observé est le suivant :

  1. uproot ouvre le fichier ROOT spécialement conçu.
  2. uproot lit les métadonnées TStreamerInfo stockées dans le 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'appel 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 spécialement conçues.

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

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

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

Résultats attendus sur les versions vulnérables :

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 charge utile est volontairement inoffensive. Elle écrit uniquement cette chaîne témoin locale :

root@kitploit:~
executed through uproot generated read_members

Elle 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 aucun fichier en dehors du répertoire de la preuve de concept.

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 les 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 flux de travail qui ouvrent automatiquement des fichiers ROOT téléversés ou fournis en externe.

Chronologie de la divulgation

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

Crédits

Découverte et signalée par Sai Teja Erukude, 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 de sécurité VulnCheck : https://www.vulncheck.com/advisories/uproot-and-before-code-injection-via-tstreamerinfo-metadata
  • Avis de sécurité 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