CVE-2026-98619 in Linuxinformazioni

Riassunto

di VulDB • 19/10/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

net: ethtool: mantenere rtnl_lock per il test di autoverifica tramite ioctl

Un test di autoverifica offline che porta l'interfaccia allo stato down e poi back up mediante netif_close() / netif_open() richiede rtnl_lock per entrambe le operazioni. Poiché il percorso IOCTL di ethtool è diventato opzionale rispetto a rtnl per i driver bloccati a livello di operazione (ops-locked), l'ioctl ETHTOOL_TEST viene eseguito mantenendo solo il lock dell'istanza netdev; pertanto, su un driver ops-locked, il test di autoverifica ora porta il dispositivo allo stato down senza mantenere rtnl_lock.

Con lockdep, questa condizione si riproduce in modo deterministico ad ogni test di autoverifica offline su tali driver; notare che l'unico lock mantenuto è quello dell'istanza, non rtnl:

WARNING: suspicious RCU usage net/core/netpoll.c:207 suspicious rcu_dereference_protected() usage! 1 lock held by ethtool/107: #0: (&dev->lock){+.+.}, at: dev_ethtool
Call Trace: netpoll_poll_disable __dev_close_many netif_close_many netif_close fbnic_self_test dev_ethtool_locked dev_ethtool dev_ioctl sock_ioctl __x64_sys_ioctl

Senza lockdep, la stessa condizione innesca ASSERT_RTNL() in __dev_close_many() / __dev_open(); tale verifica campionizza solo lo stato globale di rtnl, quindi può essere mascherata da un detentore concurrente di rtnl, ma il dispositivo viene comunque riconfigurato senza il lock richiesto.

Il comando self_test di ethtool è un legacy ioctl-only command, pertanto una casistica ETHTOOL_TEST è necessaria solo sul percorso IOCTL. Aggiungere un bit opt-in per i driver il cui test di autoverifica richiede rtnl_lock e impostarlo sui driver ops-locked il cui test offline porta l'interfaccia down e poi back up:

- fbnic (ops-locked tramite queue_mgmt_ops): il percorso offline di fbnic_self_test() utilizza netif_close() / netif_open(). - bnxt (ops-locked tramite queue_mgmt_ops): il percorso offline di bnxt_self_test() passa attraverso bnxt_close_nic() / bnxt_half_open_nic() / bnxt_half_close_nic() / bnxt_open_nic(), che chiudono e riaprono il dispositivo.

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

Responsabile

Linux

Prenotare

25/09/2026

Divulgazione

18/10/2026

Moderazione

accettato

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Do you need the next level of professionalism?

Upgrade your account now!