CVE-2026-93202 in Linuxinformazioni

Riassunto

di VulDB • 18/09/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

i3c: master: Correzione del blocco ricorsivo durante la registrazione dei dispositivi

La funzione i3c_master_register_new_i3c_devs() registra i nuovi dispositivi scoperti mentre detiene il lock i3c_bus_normaluse_lock(), che è un down_read(). device_register() può eseguire immediatamente il probe del dispositivo, e le callback di probe invocano tipicamente helper I3C che acquisiscono nuovamente i3c_bus_normaluse_lock(), portando a una acquisizione ricorsiva dello stesso rwsem. Gli rwsem non supportano il blocco read ricorsivo e possono andare in deadlock quando un writer è in attesa. Vedere la sezione "Recursive read locks" di Documentation/locking/lockdep-design.rst.

Ad esempio, con Intel LPSS I3C, LOCKDEP genera un WARNING simile a: # echo intel-lpss-i3c.0 > /sys/bus/platform/drivers/mipi-i3c-hci/unbind # echo intel-lpss-i3c.0 > /sys/bus/platform/drivers/mipi-i3c-hci/bind WARNING: possible recursive locking detected kworker/5:1/94 is trying to acquire lock: ffff88811c810d78 (&i3cbus->lock){++++}-{4:4}, at: i3c_device_match_id+0x45/0x370
but task is already holding lock: ffff88811c810d78 (&i3cbus->lock){++++}-{4:4}, at: i3c_master_reg_work_fn+0x21/0x5f0

Si risolve il problema separando la creazione del dispositivo dalla registrazione. Si popola desc->dev sotto il lock di manutenzione, si raccolgono i dispositivi che necessitano ancora della registrazione in una lista locale, quindi si rilascia il lock prima di chiamare device_register(). Infine, si riacquisisce il lock e si puliscono eventuali dispositivi non riusciti a registrarsi.

Si utilizza il lock di manutenzione anziché il lock per l'uso normale durante l'aggiunta degli oggetti del dispositivo. Un lock di manutenzione lato write impedisce ai reader di osservare un desc->dev parzialmente inizializzato durante la popolazione iniziale dei dispositivi, o che desc->dev scompaia se la registrazione fallisce.

La lista locale richiede un nodo della lista, quindi si aggiunge un membro node della lista a struct i3c_device.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsabile

Linux

Prenotare

17/09/2026

Divulgazione

18/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Interested in the pricing of exploits?

See the underground prices here!