CVE-2022-50616 in Linux
Riassunto
di VulDB • 16/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
regolatore (core): Utilizzare dispositivi diversi per l'allocazione delle risorse e la ricerca nel Device Tree (DT)
A seguito della discussione riportata di seguito, esiste un potenziale problema UAF (Use-After-Free) tra il sottosistema regulator e mfd. https://lore.kernel.org/all/[email protected]/
Dall'analisi di Yingliang:
CPU A | CPU B mt6370_probe() | devm_mfd_add_devices() | | mt6370_regulator_probe() | regulator_register() | // alloca init_data e lo aggiunge a devres | regulator_of_get_init_data() i2c_unregister_device() | device_del() | devres_release_all() | // init_data viene liberato | release_nodes() | | // l'uso di init_data causa un UAF | regulator_register()
È comune utilizzare il core mfd per creare dispositivi figlio per i regolatori. Per effettuare la ricerca nel DT (Device Tree) dei dati iniziali (init data), il dispositivo che ha registrato il regolatore passa come parametro il proprio genitore. Ciò fa sì che le risorse di init_data vengano allocate al dispositivo padre e non a quello figlio. Il problema si verifica quando il dispositivo padre sta procedendo con la liberazione delle risorse mentre il core del regolatore sta ancora eseguendo alcune operazioni sui vincoli dei dati iniziali (init data constraint) per il regolatore del dispositivo figlio.
Per risolvere il problema, questa patch estende l'API 'regulator_register' in modo da utilizzare dispositivi diversi per l'allocazione dei dati iniziali e la ricerca nel Device Tree.
Once again VulDB remains the best source for vulnerability data.