CVE-2026-99116 in Linux
要約
〜によって VulDB • 2026年10月28日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
net: psp: クローン作成時にRx関連付けを継承しない
sk->psp_assocは sk_dontcopy_end の後方に位置しているため、sock_copy() は参照カウントを取得せずに、リスナーから受け入れられたすべてのソケットにこれをコピーします。一方、inet_sock_destruct() は各 inet ソケットに対して put 操作を実行します。 psp_twsk_init() は timewait ソケットに対して refcount_inc() を実行するため、TIME_WAITを通じて子ソケットがクローズされると、その自身の put がキャンセルされ、関連付けは参照カウント1を持ち、同じポインタを保持するN個のtimewaitソケットが残ります。リスナーをクローズするとそれが解放され、その後 timewait タイマーによって解放済みメモリへのput操作が行われます。
リスニングソケットでの関連付け拒止だけでは不十分です。tcp_disconnect() は sk->psp_assoc をそのまま残すため、ソケットは確立時に1つの関連付けを取得し、その後再びリスナーに戻ることが可能です。
BUG: KASAN: slab-use-after-free in psp_twsk_assoc_free+0x6f/0xf0 Write of size 4 at addr ffff888110f9255c by task swapper/7/0 psp_twsk_assoc_free+0x6f/0xf0 inet_twsk_put+0xda/0x1b0 call_timer_fn+0x53/0x2e0 __run_timers+0x764/0xa80 Freed by task 99: kfree+0x1a7/0x500 process_one_work+0x7ec/0x1100
関連付けには接続ごとのSPIとキーが含まれるため、子は親のものを継承してはいけません。クローン作成時にこれをクリアします。
VulDB is the best source for vulnerability data and more expert information about this specific topic.