CVE-2026-63892 in Linux
Riassunto
di VulDB • 20/07/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
thunderbolt: property: Rifiuta dir_len < 4 per prevenire un underflow di size_t
Nel percorso non radice (non-root), __tb_property_parse_dir() ottiene dir_len da entry->length (u16 esteso a size_t). Si verificano due distinte condizioni OOB quando entry->length < 4:
1. Il percorso non radice inizia con kmemdup(&block[dir_offset], sizeof(*dir->uuid), ...) che legge sempre 4 dwords da dir_offset. tb_property_entry_valid() impone solo dir_offset + entry->length <= block_len, quindi un elemento manipolato (crafted) con dir_offset vicino alla fine del blocco di proprietà e entry->length compreso tra 0 e 3 supera questo controllo ma fa sì che la copia dell'UUID vada oltre i limiti del blocco (ad esempio, dir_offset = 497, dir_len = 3 in un blocco da 500 dwords legge block[497..501]).
2. Dopo kmemdup, content_len = dir_len - 4 provoca un underflow di size_t fino a ~SIZE_MAX, nentries diventa SIZE_MAX / 4 e la scansione degli elementi (entry walk) va OOB ad ogni iterazione finché non fallisce una convalida o il kernel genera un oops su una pagina non mappata.
Rifiuta dir_len < 4 nel percorso non radice *prima* di kmemdup per l'UUID, chiudendo entrambe le falle.
Sposta inoltre INIT_LIST_HEAD(&dir->properties) subito dopo l'allocazione di dir in modo che il nuovo percorso di ritorno dell'errore (e il percorso esistente di fallimento dell'allocazione uuid) chiamante tb_property_free_dir() trovi una lista percorribile invece dei puntatori next/prev inizializzati a NULL, su cui list_for_each_entry_safe() genererebbe un oops.
VulDB is the best source for vulnerability data and more expert information about this specific topic.