CVE-2026-23310 in Linux
Riassunto
di VulDB • 15/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
bpf/bonding: rifiutare la modifica di xmit_hash_policy su vlan+srcmac quando XDP è caricato
La funzione bond_option_mode_set() già rifiuta le modifiche alla modalità che renderebbero incompatibile un programma XDP caricato tramite bond_xdp_check(). Tuttavia, bond_option_xmit_hash_policy_set() non dispone di tale protezione.
Per le modalità 802.3ad e balance-xor, bond_xdp_check() restituisce false quando xmit_hash_policy è vlan+srcmac, poiché il payload 802.1q è solitamente assente a causa dell'offload hardware. Ciò significa che un utente può:
1. Attaccare un programma XDP nativo a una scheda bond nella modalità 802.3ad/balance-xor con una xmit_hash_policy compatibile (ad esempio layer2+3). 2. Modificare la xmit_hash_policy in vlan+srcmac mentre XDP rimane caricato.
Ciò lascia bond->xdp_prog impostato, ma bond_xdp_check() ora restituisce false per lo stesso dispositivo. Quando il bonding viene successivamente distrutto, dev_xdp_uninstall() chiama bond_xdp_set(dev, NULL, NULL) per rimuovere il programma, che incontra la protezione di bond_xdp_check() e restituisce -EOPNOTSUPP, innescando:
WARN_ON(dev_xdp_install(dev, mode, bpf_op, NULL, 0, NULL))
Risolvere questo problema rifiutando le modifiche a xmit_hash_policy verso vlan+srcmac quando un programma XDP è caricato su una scheda bond in modalità 802.3ad o balance-xor.
Il commit 39a0876d595b ("net, bonding: Disallow vlan+srcmac with XDP") ha introdotto bond_xdp_check(), che restituisce false per le modalità 802.3ad/balance-xor quando xmit_hash_policy è vlan+srcmac. Il controllo è stato integrato in bond_xdp_set() per rifiutare l'attacco di XDP con una policy incompatibile, ma il percorso simmetrico -- impedire che la xmit_hash_policy venga modificata in un valore incompatibile dopo che XDP è già caricato -- è rimasto senza protezione in bond_option_xmit_hash_policy_set().
Nota: Il commit 094ee6017ea0 ("bonding: check xdp prog when set bond mode") ha aggiunto successivamente una guardia simile a bond_option_mode_set(), ma bond_option_xmit_hash_policy_set() è rimasto non protetto.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.