CVE-2025-21682 in Linuxinformazioni

Riassunto

di VulDB • 16/06/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

eth: bnxt: ricalcolare sempre le funzionalità dopo la cancellazione di XDP, correggere il null-deref (dereferenziazione puntatore nullo)

Ricalcolare le funzionalità quando XDP viene disconnesso.

Prima della correzione: # ip li set dev eth0 xdp obj xdp_dummy.bpf.o sec xdp # ip li set dev eth0 xdp off # ethtool -k eth0 | grep gro rx-gro-hw: off [requested on]

Dopo la correzione: # ip li set dev eth0 xdp obj xdp_dummy.bpf.o sec xdp # ip li set dev eth0 xdp off # ethtool -k eth0 | grep gro rx-gro-hw: on

Il fatto che HW-GRO non venga riattivato automaticamente è solo un fastidio minore. Il problema reale è che le funzionalità potrebbero tornare in modo casuale durante un'altra riconfigurazione, purché questa invochi netdev_update_features(). Il driver non gestisce in modo molto robusto la riconfigurazione di due elementi contemporaneamente.

A partire dal commit 98ba1d931f61 ("bnxt_en: Fix RSS logic in __bnxt_reserve_rings()"), viene riconfigurata solo la tabella hash RSS se il numero "effettivo" di anelli Rx è cambiato. Se HW-GRO è abilitato, il numero effettivo di anelli è il doppio rispetto a quello visibile all'utente. Quindi, se ci si trova nello stato errato, con l'attivazione di HW-GRO in attesa ("pending") dopo la disconnessione di XDP, e si riducono gli anelli della metà (/ 2), i ring per HW-GRO (che operano al doppio) e il comando ethtool -L che li riduce della metà potrebbero annullarsi a vicenda, facendo sì che:

if (old_rx_rings != bp->hw_resc.resv_rx_rings &&

la condizione in __bnxt_reserve_rings() risulti falsa. La mappa RSS non verrà aggiornata e si verificherà un crash con il seguente messaggio:

BUG: kernel NULL pointer dereference, address: 0000000000000168 RIP: 0010:__bnxt_hwrm_vnic_set_rss+0x13a/0x1a0 bnxt_hwrm_vnic_rss_cfg_p5+0x47/0x180 __bnxt_setup_vnic_p5+0x58/0x110 bnxt_init_nic+0xb72/0xf50 __bnxt_open_nic+0x40d/0xab0 bnxt_open_nic+0x2b/0x60 ethtool_set_channels+0x18c/0x1d0

Mentre si tenta di accedere a un anello già liberato.

Il problema è presente da quando è stato aggiunto il supporto XDP, in realtà; prima del commit 98ba1d931f61 ("bnxt_en: Fix RSS logic in __bnxt_reserve_rings()"), tuttavia, non causava problemi gravi.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsabile

Linux

Prenotare

29/12/2024

Divulgazione

31/01/2025

Moderazione

accettato

EPSS

0.00233

KEV

no

Attività

molto basso

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!