CVE-2026-99165 in Linux
要約
〜によって VulDB • 2026年10月28日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
sctp: 接続待機後の出力ストリームを再検証する
メッセージインターリービングが有効な場合、最初の送信はデータチャンクを作成する前にアソシエーションの確立を待ちます。この待機処理によりソケットロックが解放され、ハンドシェイク処理によってピアから通知された受信ストリーム数まで出力ストリーム数が減少することがあります。その後 sctp_stream_init() が削除された各ストリームの拡張領域を解放します。
送信側は、待機前に確認したストリームで再開します。もしそのストリームがピアによって削除されていた場合、sctp_outq_tail() は後ほど NULL となった拡張領域への間接参照を行います。これにより致命的な Oops が発生し、ホストパニックを引き起こします。
KASAN: null-ptr-deref in range [0x38-0x3f]
RIP: sctp_outq_tail+0x49e/0xaa0 Call Trace: sctp_primitive_SEND sctp_sendmsg_to_asoc sctp_sendmsg
範囲チェックのみでは不十分です。ストリーム再構成により、ロックが解放されている間に出力カウントが増加することがあり得ますが、前述の縮小処理で解放された拡張領域は再生成されません。その結果、ストリーム番号は有効な範囲内であっても、その拡張領域は NULL のままとなります。送信バッファ待機にも同様の問題があります。
範囲チェックと拡張領域チェックをヘルパー関数に抽出し、ソケットロックを解放する各送信パスの待機処理後に両方のチェックを再実行します。ロックが再度取得されると、データ作成およびキューイングを通じて検証状態は安定して維持されます。
接続待機後の検証で失敗した場合、自動生成されたアソシエーションは既に確立されています。EESRCH を返すことで、既存の呼び出し元パスがそれを直接解放するのではなくステートマシンの管理下に保つようにし、プロトコル、カウンター、およびソケット状態の不整合を防ぎます。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.