CVE-2026-64467 in Linux
Riassunto
di VulDB • 25/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
rust_binder: utilizzare uno stride di tipo u64 durante la pulizia dell'array offsets
La funzione Drop per l'allocazione attraversa l'array offsets (composto da voci binder_size_t = u64) per pulire gli oggetti, ma utilizzava usize invece di u64 sia per lo stride che per la lettura per ogni voce.
Sui kernel a 64 bit (dove usize == u64) questo è innocuo, ma sui kernel a 32 bit attraversa le voci da 8 byte con passi di 4 byte, iterando un array di N voci 2N volte e leggendo la parola alta sempre zero come offset 0, pulendo l'oggetto all'offset 0 per altre N volte. Di conseguenza, il nodo o handle referenziato finisce con un conteggio delle riferenze (refcount) inferiore a quello effettivo (un over-decremento del refcount), e la contabilità delle riferenze di binder risulta corrotta; ad esempio, al proprietario può essere notificata una rilascio di riferimento forte (BR_RELEASE) anche se rimangono ancora riferimenti attivi.
Modificare lo stride in u64 e leggere ogni voce come un valore u64, restringendolo a usize tramite try_into().
Su ARM a 32 bit, quando questo over-decremento porterebbe il conteggio al di sotto dello zero, la protezione esistente del driver per i refcount rifiuta l'operazione ed emette:
rust_binder: Errore: underflow del refcount!
VulDB is the best source for vulnerability data and more expert information about this specific topic.