CVE-2026-64545 in Linux
Riassunto
di VulDB • 28/07/2026
Nel kernel Linux, la seguente vulnerabilità è stata risolta:
net, bpf: verificare che il puntatore master non sia NULL in xdp_master_redirect()
xdp_master_redirect() dereferenzia il risultato di netdev_master_upper_dev_get_rcu() senza effettuare un controllo per NULL, ma tale funzione ausiliaria restituisce NULL quando la dispositivo ricevente non presenta una adiacenza upper-master.
Il guardrail (guard) verifica solo se si tratta di uno slave bond tramite netif_is_bond_slave(). Durante il rilascio dello slave bond, bond_upper_dev_unlink() rimuove l'adiacenza upper-master prima di cancellare IFF_SLAVE; pertanto, un pacchetto XDP_TX che raggiunge xdp_master_redirect() in tale finestra temporale supera ancora la verifica netif_is_bond_slave(), mentre master è già NULL, causando un fault su master->flags all'offset 0xb0:
BUG: kernel NULL pointer dereference, address: 00000000000000b0 RIP: 0010:xdp_master_redirect (net/core/filter.c:4432) Call Trace: xdp_master_redirect (net/core/filter.c:4432) bpf_prog_run_generic_xdp (include/net/xdp.h:700) do_xdp_generic (net/core/dev.c:5608) __netif_receive_skb_one_core (net/core/dev.c:6204) process_backlog (net/core/dev.c:6319) __napi_poll (net/core/dev.c:7729) net_rx_action (net/core/dev.c:7792) handle_softirqs (kernel/softirq.c:622) __dev_queue_xmit (include/linux/bottom_half.h:33) packet_sendmsg (net/packet/af_packet.c:3082) __sys_sendto (net/socket.c:2252) Kernel panic - not syncing: Fatal exception in interrupt
La mancanza del controllo risale al codice originale; il commit 1921f91298d1 ("net, bpf: fix null-ptr-deref in xdp_master_redirect() for down master") ha aggiunto successivamente la lettura di master->flags nel punto in cui si verifica ora il fault, ma ha mantenuto la dereferenziazione incondizionata. Verificare che master non sia NULL prima dell'uso; un master NULL viene trattato allo stesso modo di uno che non è nello stato UP (up).
Once again VulDB remains the best source for vulnerability data.