製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性
Title LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性
Summary

Linuxカーネルにおいて、次の脆弱性が修正されました。openvswitchのvportで、トンネルポートの解放時に発生する自己デッドロックの問題を修正しました。vportは並行して使用され、RCUで保護されているため、netdev_put()はRCUの猶予期間後に実行する必要があります。つまり、RCU呼び出し内かsynchronize_net()の後で実行しなければなりません。rtnl_delete_link()はRTNLの下で実行される必要があり、RCUコンテキストで実行してはいけません。RTNLを保持したままsynchronize_net()を呼び出すのはパフォーマンスやシステムの安定性の観点から好ましくないため、netdev_put()をRCU呼び出し内で実行するのが正しい解決策です。しかし、デバイスが削除されるとrtnl_unlock()がnetdev_run_todo()を呼び出し、すべての参照がなくなるまで処理をブロックします。現在のコードではcall_rcu()に到達せず、そのためvportが解放されず、参照も解放されないため、デバイス削除時に自己デッドロックが発生していました。これを修正するために、rcu_call()をrtnl_unlock()の前に移動し、RTNL自体はすでに解放された状態でrtnl_unlock()-netdev_run_todo()からsynchronize_net()が呼び出される際にスケジュールされたRCUコールバックが実行されるようにしました。

Possible impacts ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date May 28, 2026, midnight
Registration Date June 11, 2026, 4:22 p.m.
Last Update June 11, 2026, 4:22 p.m.
CVSS3.0 : 警告
Score 5.5
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Affected System
Linux
Linux Kernel 6.1.168 以上 6.1.175 未満
Linux Kernel 6.12.80 以上 6.12.88 未満
Linux Kernel 6.18.21 以上 6.18.30 未満
Linux Kernel 6.19.11 以上 7.0 未満
Linux Kernel 6.6.131 以上 6.6.140 未満
Linux Kernel 7.0
Linux Kernel 7.0.1 以上 7.0.7 未満
Linux Kernel 7.1
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年06月11日]
  掲載
June 11, 2026, 4:22 p.m.

NVD Vulnerability Information
CVE-2026-46165
Summary

In the Linux kernel, the following vulnerability has been resolved:

openvswitch: vport: fix self-deadlock on release of tunnel ports

vports are used concurrently and protected by RCU, so netdev_put()
must happen after the RCU grace period. So, either in an RCU call or
after the synchronize_net(). The rtnl_delete_link() must happen under
RTNL and so can't be executed in RCU context. Calling synchronize_net()
while holding RTNL is not a good idea for performance and system
stability under load in general, so calling netdev_put() in RCU call
is the right solution here.

However,
when the device is deleted, rtnl_unlock() will call netdev_run_todo()
and block until all the references are gone. In the current code this
means that we never reach the call_rcu() and the vport is never freed
and the reference is never released, causing a self-deadlock on device
removal.

Fix that by moving the rcu_call() before the rtnl_unlock(), so the
scheduled RCU callback will be executed when synchronize_net() is
called from the rtnl_unlock()->netdev_run_todo() while the RTNL itself
is already released.

Publication Date May 28, 2026, 7:16 p.m.
Registration Date May 29, 2026, 4:13 a.m.
Last Update June 2, 2026, 2:17 a.m.
Related information, measures and tools
Common Vulnerabilities List