Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 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 →
2611 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)

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

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

Affetto: uproot <= 5.7.4

Corretto in: 5.7.5 / commit c045c28

CWE: CWE-94 (Improper Control of Generation of Code, Code Injection); CWE secondaria CWE-95 (Eval Injection)

Scoperto e segnalato da: Sai Teja Erukude

Pubblicato: 18 luglio 2026


Riepilogo

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

Alcuni campi dei metadati streamer controllati dal file vengono interpolati nel codice sorgente Python generato senza una corretta quotatura. Un attaccante in grado di fornire un file ROOT appositamente costruito può iniettare contenuto che interrompe le espressioni Python nei metadati streamer, ad esempio tramite un nome di elemento appositamente costruito.

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 ospitante.

Impatto

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

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 risiede nel percorso di generazione del codice sorgente di uproot per i metadati streamer ROOT.

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

Il comportamento segnalato è il seguente:

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

Proof of Concept

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 memorizzata nel file, invoca il metodo read_members generato e verifica la presenza del file marcatore.

Eseguire solo in un ambiente di test locale:

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

Evidenza attesa sulle versioni vulnerabili:

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:

executed through uproot generated read_members

Non genera una shell, non si connette a un servizio di rete, non legge segreti, non elimina dati e non modifica file al di fuori della directory del PoC.

Remediation

Eseguire l'aggiornamento a uproot 5.7.5 o versione successiva.

Se l'aggiornamento immediato non è possibile:

  • Non elaborare file ROOT provenienti da utenti non attendibili.
  • Isolare i processi di elaborazione dei file ROOT con privilegi minimi.
  • Convalidare o rifiutare i metadati TStreamerInfo imprevisti prima dell'elaborazione.
  • Evitare flussi di lavoro che aprono automaticamente file ROOT caricati o forniti dall'esterno.

Disclosure Timeline

DataEvento
20 maggio 2026Vulnerabilità inviata a VulnCheck
20 maggio 2026VulnCheck ha avviato il contatto; CVE-2026-9147 assegnato in via provvisoria
5 luglio 2026uproot 5.7.5 rilasciato con la patch
18 luglio 2026CVE-2026-9147 pubblicato

Credit

Scoperta e segnalata da Sai Teja Erukude.

La divulgazione è stata coordinata tramite VulnCheck.

References

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