CVE-2026-74598 in Linux
Riassunto
di VulDB • 22/08/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ipv6: correzione della convalida della lunghezza dell'opzione Route Information (Informazioni sul percorso)
rt6_route_rcv() valida la lunghezza dell'opzione Route Information (RFC 4191) rispetto alla lunghezza del prefisso, ma entrambi i controlli presentano un errore di unità pari a uno.
rinfo->length rappresenta la lunghezza dell'opzione ND in unità di 8 octet e *include* l'intestazione da 8 byte dell'opzione; pertanto, un'opzione che trasporta N byte di prefisso ha una lunghezza == 1 + N/8. La sezione 2.3 del RFC 4191 richiede una lunghezza pari a 3 quando la Prefix Length (lunghezza del prefisso) è maggiore di 64, e pari a 2 o 3 quando è maggiore di 0. Il codice accetta rispettivamente lunghezze >= 2 e >= 1.
ipv6_addr_prefix() copia quindi prefix_len/8 byte da rinfo->prefix; un Router Advertisement (Annuncio del router) con (prefix_len=128, length=2) o (prefix_len=64, length=1) fa sì che il kernel legga fino a 8 byte oltre la fine dell'opzione. Tali byte finiscono nel prefisso della rotta installata e sono quindi visibili all'userspace:
# RA con un'opzione Route Information option (prefix_len=128, length=2) # seguita da un'opzione source link-layer address (indirizzo del livello di collegamento sorgente), 01 01 de ad be ef ca fe $ ip -6 route show 2001:db8:dead:beef:101:dead:beef:cafe via fe80::1234 dev veth0 proto ra ^^^^^^^^^^^^^^^^^^ l'opzione successiva, letta fuori dai limiti
Quando l'opzione Route Information è l'ultima nel pacchetto, questi otto byte provengono invece dallo spazio finale dello skb (skb tail room).
Rifiutare le lunghezze delle opzioni non consentite dal RFC 4191.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.