| Title | LinuxのLinux Kernelにおける不特定の脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、以下の脆弱性が修正されました。nvmetでは非同期イベント作業をnvmet-wqから専用のnvmet-aen-wqに移動しました。対象のnvmet_ctrl_free()はctrl-async_event_workのflushを行います。もしnvmet_ctrl_free()がnvmet-wq上で実行されると、flushが同じワーカーの作業キュー完了処理に再入りすることになります。A. nvmet-wqにキューイングされた非同期イベント作業(切断前):nvmet_execute_async_event()でqueue_work(nvmet_wq, &ctrl-async_event_work)が呼ばれ、nvmet_add_async_event()でもqueue_work(nvmet_wq, &ctrl-async_event_work)が呼ばれます。B. 完全な事前作業チェーン(RDMA CM経路):nvmet_rdma_cm_handler()がnvmet_rdma_queue_disconnect()を呼び、さらに__nvmet_rdma_queue_disconnect()内でqueue_work(nvmet_wq, &queue-release_work)が呼ばれます。これがprocess_one_work()で処理され、最初のロックlock((wq_completion)nvmet-wq)がかかります。続いてnvmet_rdma_release_queue_work()が実行されます。C. 再帰的な経路(同じワーカー):nvmet_rdma_release_queue_work()がnvmet_rdma_free_queue()、nvmet_sq_destroy()、nvmet_ctrl_put()を経てnvmet_ctrl_free()を呼びます。そこでflush_work(&ctrl-async_event_work)により__flush_work()が呼ばれ、touch_wq_lockdep_map()が実行され、2回目のlock((wq_completion)nvmet-wq)が発生します。これにより再帰的なロック取得が起こり、Lockdepの警告が発生します。警告には具体的なロックの重複保持情報やスタックトレースが示されています。対策として、非同期イベント作業を専用のnvmet-aen-wqに移動し、nvmet-wq上での再帰的なflushを回避しています。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | April 24, 2026, midnight |
| Registration Date | April 30, 2026, 12:09 p.m. |
| Last Update | April 30, 2026, 12:09 p.m. |
| CVSS3.0 : 重要 | |
| Score | 7.5 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 5.15.42 以上 5.16 未満 |
| Linux Kernel 5.17.10 以上 5.18 未満 |
| Linux Kernel 5.18 |
| Linux Kernel 5.18.1 以上 6.12.80 未満 |
| Linux Kernel 6.13 以上 6.18.21 未満 |
| Linux Kernel 6.19 以上 6.19.11 未満 |
| Linux Kernel 7.0 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年04月30日] 掲載 |
April 30, 2026, 12:09 p.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: nvmet: move async event work off nvmet-wq For target nvmet_ctrl_free() flushes ctrl->async_event_work. A. Async event work queued on nvmet-wq (prior to disconnect): nvmet_add_async_event() B. Full pre-work chain (RDMA CM path): C. Recursive path (same worker): Lockdep splat: ============================================ but task is already holding lock: 3 locks held by kworker/u192:42/44933: Workqueue: nvmet-wq nvmet_rdma_release_queue_work [nvmet_rdma] Move async event work to a dedicated nvmet-aen-wq to avoid reentrant |
|---|---|
| Publication Date | April 25, 2026, 12:16 a.m. |
| Registration Date | April 25, 2026, 4:07 a.m. |
| Last Update | April 28, 2026, 12:16 a.m. |