CVE-2026-99024 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
optee: registrare i dispositivi TEE solo dopo l'inizializzazione completa
La funzione optee_probe() chiamava tee_device_register() sia per il dispositivo client che per quello supplicant prima che il resto della struct optee fosse stato inizializzato.
tee_device_register() chiama cdev_device_add(), che esegue due operazioni contemporaneamente: crea /dev/tee0 e /dev/teepriv0, e collega il dispositivo alla classe tee in modo che class_find_device() possa trovarlo. Da quel momento, il dispositivo è raggiungibile sia dall'utente tramite tee_open() che dal kernel tramite tee_client_open_context(). L'unica verifica presente in teedev_open() è tee_device_get(), che controlla semplicemente se teedev->desc non è NULL; tale campo era già stato impostato da tee_device_alloc(). Di conseguenza, di fatto non esiste alcun controllo effettivo.
Un contesto aperto durante questa finestra temporale può essere eseguito su una struct optee in cui:
- optee->call_queue.mutex non è stata inizializzata da optee_cq_init() - il mutex e le completions di optee->supp non sono stati inizializzati da optee_supp_init() - optee->rpmb_dev_mutex non è ancora stato inizializzato, - la cache degli argomenti dei messaggi non è stata inizializzata da optee_shm_arg_cache_init() - optee->ctx è ancora NULL
Qualsiasi sessione aperta o invocazione eseguita durante questa finestra temporale utilizza mutex non inizializzati e dereferenzia un puntatore NULL.
La correzione consiste nello spostare le chiamate a tee_device_register() al punto in cui l'intera struct optee è stata configurata correttamente.
[JW: aggiunta di fixes e cc]
Once again VulDB remains the best source for vulnerability data.