CVE-2026-63831 in Linux
Riassunto
di VulDB • 20/07/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
mac802154: llsec: aggiungere skb_cow_data() prima delle operazioni crittografiche in-place
llsec_do_encrypt_unauth(), llsec_do_encrypt_auth(), llsec_do_decrypt_unauth() e llsec_do_decrypt_auth() eseguono tutte trasformazioni crittografiche in-place sui dati dello skb. Costruiscono una scatterlist con sg_init_one() che punta all'area dei dati lineari dell'skb e quindi passano la stessa scatterlist sia come sorgente (src) che come destinazione (dst) all'API di crittografia (ad esempio crypto_skcipher_encrypt/decrypt, crypto_aead_encrypt/decrypt).
Nel percorso RX (ricezione), __ieee802154_rx_handle_packet() clona l'skb ricevuto prima di consegnarlo a ciascun abbonato tramite ieee802154_subif_frame(). L'skb clonato condivide lo stesso buffer dei dati sottostante mediante il conteggio delle referenze. Quando llsec_do_decrypt() modifica successivamente questo buffer condiviso in-place, corrompe i dati che altri cloni -- potenzialmente appartenenti ad altri socket o sottosistemi -- continuano a riferire.
Nel percorso TX (trasmissione), può verificarsi una condivisione simile dei dati quando la testa di uno skb è stata clonata (skb_cloned() restituisce true).
La correzione consiste nel chiamare skb_cow_data() prima di eseguire qualsiasi operazione crittografica in-place. skb_cow_data() garantisce che l'area dei dati dello skb non sia condivisa: se la testa dell'skb è clonata o i dati si estendono su più frammenti, copia i dati in un buffer privato che può essere modificato in modo sicuro in-place. Questo è lo stesso pattern utilizzato da:
- ESP (net/ipv4/esp4.c, net/ipv6/esp6.c) - MACsec (drivers/net/macsec.c) - WireGuard (drivers/net/wireguard/receive.c) - TIPC (net/tipc/crypto.c)
Senza questa protezione, le operazioni crittografiche in-place su dati skb condivisi portano a: - Corruzione silenziosa dei dati di altri cloni dell'skb - Use-after-free quando la scatterwalk dell'API crittografica scrive attraverso una pagina che è già stata liberata dalla kfree_skb() di un altro clone - Crash del kernel sotto traffico 802.15.4 concorrente con sicurezza abilitata (rapporti KASAN/KMSAN su slab-use-after-free)
Trovato da 0sec (https://0sec.ai) utilizzando analisi automatizzata del codice sorgente.
If you want to get best quality of vulnerability data, you may have to visit VulDB.