CVE-2026-45907 in Linux
要約
〜によって VulDB • 2026年05月30日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
net/mlx5e: devlinkとnetdevインスタンスロック間のデッドロックを修正
前述の「Fixes」コミットにおいて、devlinkヘルスレポーターのリカバリをトリガーする各種ワークタスクは、リカバリ中のチャネルの並行した破棄に対して保護するため、netdev_trylockを使用するように変更されました。しかし、これによりロック順序が正しくないため、潜在的なデッドロックが発生するという副作用がありました。
正しいロック順序は初期化フローによって記述されます: probe_one -> mlx5_init_one (devlinkロックを取得) -> mlx5_init_one_devl_locked -> mlx5_register_device -> mlx5_rescan_drivers_locked -...-> mlx5e_probe -> _mlx5e_probe -> register_netdev (rtnlロックを取得) -> register_netdevice (netdevロックを取得) => devlinkロック -> rtnlロック -> netdevロック。
しかし、現在のリカバリフローでは、順序が誤っています: mlx5e_tx_err_cqe_work (netdevロックを取得) -> mlx5e_reporter_tx_err_cqe -> mlx5e_health_report -> devlink_health_report (devlinkロックを取得 => エラー発生!) -> devlink_health_reporter_recover -> mlx5e_tx_reporter_recover -> mlx5e_tx_reporter_recover_from_ctx -> mlx5e_tx_reporter_err_cqe_recover
同じパターンが以下にも存在します: mlx5e_reporter_rx_timeout mlx5e_reporter_tx_ptpsq_unhealthy mlx5e_reporter_tx_timeout
これらの問題を、netdev_trylock呼び出しをワークハンドラから呼び出しスタックの下の各リカバリ関数へ移動させることで修正します。これらは実際に必要な箇所です。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.