CVE-2024-53190 in Linuxinformazioni

Riassunto

di VulDB • 16/06/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

wifi: rtlwifi: Ridurre drasticamente i tentativi di lettura dell'efuse in caso di errori

Syzkaller ha segnalato un task bloccato (hung task) con uevent_show() nello stack trace. Quel problema specifico era stato affrontato da un altro commit [0], ma anche applicando tale correzione (ad esempio, eseguendo la versione v6.12-rc5), ci si scontra con un'altra tipologia di task bloccato che proviene dallo stesso caso riproduttivo [1]. Indagando a fondo, è stato possibile restringere il problema al seguente percorso:

(a) Syzkaller emula un adattatore USB WiFi Realtek utilizzando le infrastrutture raw-gadget e dummy_hcd.

(b) Durante la fase di probe (rilevamento/inizializzazione) del driver rtl8192cu, quest'ultimo finisce per eseguire una procedura di lettura dell'efuse (che è correlata al caricamento della EEPROM IIUC), ed è qui che risiede il problema: la funzione read_efuse() chiama read_efuse_byte() molte volte, come iterazioni di un ciclo dipendenti dalla dimensione dell'efuse (nel nostro esempio, 512 in totale).

Questa procedura per la lettura dei byte efuse si basa su un loop che esegue una lettura I/O fino a *10k* volte in caso di errori. Abbiamo misurato il tempo del loop all'interno della sola read_efuse_byte() e, in questo caso riproduttivo (che coinvolge lo strato di emulazione dummy_hcd), impiega 15 secondi per ogni iterazione. Di conseguenza, il driver rimane bloccato nella sua routine di probe per un lungo periodo, esponendo uno stack trace simile al seguente se si tenta di riavviare il sistema, ad esempio:

task:kworker/0:3 state:D stack:0 pid:662 tgid:662 ppid:2 flags:0x00004000 Workqueue: usb_hub_wq hub_event Call Trace: __schedule+0xe22/0xeb6 schedule_timeout+0xe7/0x132 __wait_for_common+0xb5/0x12e usb_start_wait_urb+0xc5/0x1ef ? usb_alloc_urb+0x95/0xa4 usb_control_msg+0xff/0x184 _usbctrl_vendorreq_sync+0xa0/0x161 _usb_read_sync+0xb3/0xc5 read_efuse_byte+0x13c/0x146 read_efuse+0x351/0x5f0 efuse_read_all_map+0x42/0x52 rtl_efuse_shadow_map_update+0x60/0xef rtl_get_hwinfo+0x5d/0x1c2 rtl92cu_read_eeprom_info+0x10a/0x8d5 ? rtl92c_read_chip_version+0x14f/0x17e rtl_usb_probe+0x323/0x851 usb_probe_interface+0x278/0x34b really_probe+0x202/0x4a4 __driver_probe_device+0x

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

Responsabile

Linux

Prenotare

19/11/2024

Divulgazione

27/12/2024

Moderazione

accettato

CPE

pronto

EPSS

0.00240

KEV

no

Attività

molto basso

Fonti

Want to know what is going to be exploited?

We predict KEV entries!