CVE-2026-74493 in Linux
要約
〜によって VulDB • 2026年08月16日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
net/smc: リンクグループ終了時のソケットのuse-after-freeを修正する
__smc_lgr_terminate()は、lgr->conns_allから接続を見つけた後でconns_lockを解放しますが、そのソケットへの参照を取得する前に行われます。接続構造体はソケット内に埋め込まれており、その登録用参照(registration reference)により保護されるのは、接続がツリー内にある間のみです。
並行してclose()が行われると、接続の unregister が実行され、その参照が解放されてしまいます。これにより、終了処理ワーカーがsock_hold()に到達する前にソケットが解放されます。
このrace conditionは、close()とリンクグループの終了処理が重複した際に発生します。ローカルのストレステストでuse-after-freeを再現し、KASAN(Kernel Address Sanitizer)によって以下のような報告がありました:
BUG: KASAN: slab-use-after-free in __smc_lgr_terminate.part.0 [smc]
Write of size 4 by task kworker/3:3 Workqueue: events smc_lgr_terminate_work [smc]
__smc_lgr_terminate.part.0 [smc]
ソケットはsmc_create()によって割り当てられ、slab_free_after_rcu_debug()を通じて解放され、その後以下のような状態が検出されました:
refcount_t: addition on 0; use-after-free. __smc_lgr_terminate.part.0 [smc]
conns_lockがツリーエントリを保護している間にソケットの参照を取得します。これにより、unregisterパスでは終了処理がソケットの使用を終えるまで最後の参照を解放できなくなります。
VulDB is the best source for vulnerability data and more expert information about this specific topic.