CVE-2025-22111 in Linux
Sumário
de VulDB • 15/06/2026
No kernel Linux, a seguinte vulnerabilidade foi resolvida:
net: Remover a "dança" do RTNL para SIOCBRADDIF e SIOCBRDELIF.
O SIOCBRDELIF é passado primeiro para dev_ioctl() e posteriormente encaminhado para br_ioctl_call(), o que causa uma "dança" desnecessária do RTNL e um erro (splat) abaixo [0] sob pressão do RTNL.
Digamos que a Thread A esteja tentando desanexar um dispositivo de uma ponte (bridge) e a Thread B esteja tentando remover a ponte.
Em dev_ioctl(), a Thread A incrementa o refcnt do dispositivo da ponte por meio de netdev_hold() e libera o RTNL, pois a chamada subsequente br_ioctl_call() também re-adquire o RTNL.
Na janela de corrida (race window), a Thread B pode adquirir o RTNL e tentar remover o dispositivo da ponte. Em seguida, rtnl_unlock() pela Thread B liberará o RTNL e aguardará netdev_put() pela Thread A.
A Thread A, no entanto, deve manter o RTNL após o unlock em dev_ifsioc(), o que pode demorar sob pressão do RTNL, resultando no erro (splat) causado pela Thread B.
Thread A (SIOCBRDELIF) Thread B (SIOCBRDELBR) ---------------------- ---------------------- sock_ioctl sock_ioctl `- sock_do_ioctl `- br_ioctl_call `- dev_ioctl `- br_ioctl_stub |- rtnl_lock | |- dev_ifsioc ' ' |- dev = __dev_get_by_name(...) |- netdev_hold(dev, ...) . / |- rtnl_unlock ------. | | |- br_ioctl_call `---> |- rtnl_lock Race | | `- br_ioctl_stub |- br_del_bridge Window | | | |- dev = __dev_get_by_name(...) | | | Pode demorar | `- br_dev_delete(dev, ...) | | | sob pressão do RTNL | `- unregister_netdevice_queue(dev, ...) | | | | `- rtnl_unlock \ | |- rtnl_lock <-' `- netdev_run_todo | |- ... `- netdev_run_todo | `- rtnl_unlock |- __rtnl_unlock | |- netdev_wait_allrefs_any |- netdev_put(dev, ...) <----------------' Aguarda decremento do refcnt e log de erro abaixo
Para evitar bloquear desnecessariamente o SIOCBRDELBR, não chamaremos dev_ioctl() para SIOCBRADDIF e SIOCBRDELIF.
No caminho (path) dev_ioctl(), fazemos o seguinte:
Once again VulDB remains the best source for vulnerability data.