Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-9147-uproot-rce — uproot <= 5.7.4: iniezione di codice tramite generazione non sicura di sorgenti Python dai metadati di ROOT TStreamerInfo. | Kitploit
Strumenti/GitHubGitHub/saiteja-erukude/cve-2026-9147-uproot-rce
Generazione di PayloadAnalisi delle VulnerabilitàExploit
GitHubsaiteja-erukude/cve-2026-9147-uproot-rce

CVE-2026-9147-uproot-rce

uproot <= 5.7.4: iniezione di codice tramite generazione non sicura di sorgenti Python dai metadati di ROOT TStreamerInfo.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
224 giorni faNon ancora revisionato
Condividi

CVE-2026-9147: iniezione di codice in uproot tramite metadati TStreamerInfo

Gravità: Alta, CVSS 4.0 8.5, CVSS 3.1 7.8 (assegnata da VulnCheck, il 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

Versioni interessate: uproot <= 5.7.4

Corretta in: 5.7.5 / commit c045c28

CWE: CWE-94 (controllo improprio della generazione di codice, iniezione di codice); secondaria CWE-95 (iniezione tramite eval)

Segnalata da: Sai Teja Erukude

CNA: VulnCheck

Pubblicata: 18 luglio 2026


Riepilogo

uproot 5.7.4 e versioni precedenti generano dinamicamente il sorgente di classi Python dai metadati ROOT TStreamerInfo e lo compilano a runtime.

Alcuni campi dei metadati streamer controllati dal file vengono interpolati nel sorgente Python generato senza un quoting sicuro. Un attaccante che può fornire un file ROOT appositamente costruito può iniettare contenuti in grado di rompere le espressioni Python nei metadati streamer, come ad esempio un nome di elemento modificato ad arte.

Quando un'applicazione vulnerabile apre il file ROOT appositamente costruito e uproot genera e invoca il corrispondente metodo di lettura, l'espressione Python iniettata può essere eseguita nel contesto del processo host.

Impatto

Un attaccante può eseguire codice Python arbitrario nelle applicazioni che aprono o elaborano file ROOT controllati dall'attaccante usando i percorsi di codice uproot vulnerabili.

A seconda dell'applicazione, ciò può consentire di:

  • Leggere o modificare file accessibili al processo.
  • Accedere a variabili d'ambiente e segreti dell'applicazione.
  • Chiamare servizi interni raggiungibili dall'host.
  • Interrompere job di elaborazione dati o il comportamento dell'applicazione.

Dettagli tecnici

Il problema si trova nel percorso di generazione del sorgente di uproot per i metadati streamer ROOT.

La PoC crea un file ROOT contenente metadati TStreamerInfo appositamente costruiti per una classe ExploitTarget. Il nome dell'elemento streamer modificato esce dall'espressione generata e inietta una chiamata innocua a pathlib.

Il comportamento segnalato è:

  1. uproot apre il file ROOT appositamente costruito.
  2. uproot legge i metadati TStreamerInfo provenienti dal file.
  3. uproot genera il sorgente della classe Python per ExploitTarget.
  4. Il sorgente della classe generata contiene l'espressione iniettata.
  5. L'invocazione del metodo generato read_members esegue l'espressione iniettata.

Prova di concetto

root_file_builder.py crea malicious_tstreamerinfo.root con metadati streamer appositamente costruiti.

run_poc.py apre il file con uproot, forza la generazione della classe ExploitTarget basata sul file, invoca il metodo generato read_members e verifica l'evidenza tramite file marcatore.

Eseguire solo in un ambiente di test locale:

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

Evidenza attesa sulle versioni vulnerabili:

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

Il payload è intenzionalmente innocuo. Scrive solo questa stringa marcatore locale:

root@kitploit:~
executed through uproot generated read_members

Non avvia una shell, non si connette a servizi di rete, non legge segreti, non elimina dati e non modifica file al di fuori della directory della PoC.

Rimedio

Aggiornare a uproot 5.7.5 o successivo.

Se non è possibile aggiornare immediatamente:

  • Non elaborare file ROOT provenienti da utenti non fidati.
  • Isolare i job di elaborazione di file ROOT con privilegi minimi.
  • Validare o rifiutare metadati TStreamerInfo inattesi prima dell'elaborazione.
  • Evitare flussi di lavoro che aprono automaticamente file ROOT caricati o forniti esternamente.

Cronologia della divulgazione

DataEvento
20 maggio 2026Vulnerabilità inviata a VulnCheck
20 maggio 2026VulnCheck ha avviato il contatto; CVE-2026-9147 assegnata provvisoriamente
5 luglio 2026Pubblicata uproot 5.7.5 con patch
18 luglio 2026CVE-2026-9147 pubblicata

Riconoscimenti

Scoperta e segnalata da Sai Teja Erukude, coordinata tramite VulnCheck.

Riferimenti

  • Registro CVE: https://www.cve.org/CVERecord?id=CVE-2026-9147
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-9147
  • Avviso VulnCheck: https://www.vulncheck.com/advisories/uproot-and-before-code-injection-via-tstreamerinfo-metadata
  • Avviso GitHub: https://github.com/scikit-hep/uproot5/security/advisories/GHSA-6946-mq52-g438
  • Commit della patch: https://github.com/scikit-hep/uproot5/commit/c045c2824295d907d2e705f31110c742928e50e7
  • Progetto uproot: https://github.com/scikit-hep/uproot5
Scarica lo strumento