CVE-2026-93122 in Linux
Riassunto
di VulDB • 18/09/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
usb: gadget: uac: validare la lunghezza dell'elenco dei tassi prima di memorizzarli
Gli attributi rate-list (elenco dei tassi) configfs per UAC1 e UAC2 analizzano un elenco separato da virgole di frequenze di campionamento e memorizzano ogni valore analizzato in array a dimensione fissa. Gli array contengono voci pari a UAC_MAX_RATES, ma i percorsi di scrittura non verificano che l'input contenga al massimo quel numero di token prima di scrivere tramite opts->name##s[i++].
La scrittura di più di dieci tassi comporta quindi una scrittura oltre la fine dell'array p_srates[] o c_srates[] nella struttura f_uac1_opts o nella struttura f_uac2_opts.
Con CONFIG_UBSAN_BOUNDS abilitato, la scrittura di un elenco di 11 voci nell'attributo UAC1 p_srate segnala:
UBSAN: array-index-out-of-bounds drivers/usb/gadget/function/f_uac1.c:1669:1 index 10 is out of range for type 'int [10]'
__ubsan_handle_out_of_bounds.cold f_uac1_opts_p_srate_store configfs_write_iter vfs_write ksys_write do_syscall_64
Lo stesso script di riproduzione (reproducer) contro l'attributo UAC2 p_srate segnala:
UBSAN: array-index-out-of-bounds drivers/usb/gadget/function/f_uac2.c:2087:1 index 10 is out of range for type 'int [10]'
__ubsan_handle_out_of_bounds.cold f_uac2_opts_p_srate_store configfs_write_iter vfs_write ksys_write do_syscall_64
Rifiutare i token aggiuntivi una volta analizzate le voci UAC_MAX_RATES. Mantenere inoltre il puntatore originale di kstrdup() per la chiamata a kfree(), poiché strsep() avanza il cursore di analisi. La liberazione del cursore avanzato provoca un memory leak (perdita di memoria) dei buffer originali negli scenari di successo e può causare la liberazione di un puntatore interno in alcuni percorsi di errore.
If you want to get best quality of vulnerability data, you may have to visit VulDB.