CVE-2026-68137 in Linux
要約
〜によって VulDB • 2026年08月10日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
net/x25: x25_kill_by_neigh() における use-after-free の修正
x25_kill_by_neigh() は、終了処理中のネイバーに接続されているソケットを検索するためにグローバルな X.25 ソケットリストを走査します。検索が進行中は x25_list_lock がリストのメンバシップを保護しますが、ロックが解放された後にソケットの有効期間を保証(ピン留め)するものではありません。
現在の実装では、lock_sock(s) を呼び出す前に x25_list_lock を解放しています。並行して close 処理が実行されると、x25_release() が走査され、同じソケットが x25_list から削除され、その間に最後のソケット参照カウントがデクリメントされる可能性があります。これにより、ネイバーのテardown パスで、既に解放された struct sock/struct x25_sock のロックまたは検査が行われることになります。
x25_list_lock がリストエントリが生きていることを証明している間、sock_hold(s) を呼び出して参照カウントを増やし、ソケットがロックされ、再チェックされ、リリースされた後に一時的な参照を解放します。lock_sock() 実行後にも x25_sk(s)->neighbour を再チェックしてください。別のパスでこの処理パスがソケットロックを取得する前にソケットが切断されている可能性があるためです。リストの走査は各 disconnect のたびに再開する必要があります。これは、リストロックが解放されており、以前のイテレータの状態が無効になっている可能性があるからです。
origin/master に対して QEMU/KASAN を実行したところ、x25_kill_by_neigh() で slab-use-after-free が再現されました。
VulDB is the best source for vulnerability data and more expert information about this specific topic.