CVE-2026-64024 in Linux情報

要約

〜によって VulDB • 2026年07月19日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

tcp: 古くなったper-CPU tcp_tw_isnのリークを修正し、ISN予測を防止する

Blamed commitは、TIME_WAIT由来のISN(Initial Sequence Number)をskb制御ブロックからper-CPU変数へ移動しました。これは、その値が常にそれを書き込んだ同じパケットに対してtcp_conn_request()によって消費されると仮定したものでした。しかし、この仮定はプロデューサー(tcp_v{4,6}_rcv()内の__this_cpu_write(tcp_tw_isn, isn))とコンシューマー(tcp_conn_request())の間に存在する複数のドロップパスにより違反されます:

- min_ttl / min_hopcount チェック - xfrm ポリシーチェック - tcp_inbound_hash() MD5/AO不一致 - tcp_filter() eBPF/SO_ATTACH_FILTERによるドロップ - tcp_rcv_state_process() TCP_LISTEN状態での th->syn && th->fin の破棄 - tcp_v{4,6}_do_rcv() 内の psp_sk_rx_policy_check()
- tcp_v{4,6}_do_rcv() 内の tcp_checksum_complete()
- tcp_v{4,6}_cookie_check() が NULL を返す場合

これらのパスのいずれかでパケットがドロップされると、tcp_tw_isn は設定されたまま残ります。

その後、同じCPUで処理される次のSYNは、tcp_conn_request() 内で非ゼロ値を消費し、予測可能なISNを受け取ることになります。

このパッチでは、per-CPU変数を排除するために tcp_tw_isn を skb->cb[] に戻します。

なお、tcp_v{4,6}_fill_cb() はこれを設定しません。

全体的なコードサイズ/複雑さへの影響は非常に小さいです:

$ scripts/bloat-o-meter -t vmlinux.old vmlinux.new add/remove: 0/0 grow/shrink: 2/1 up/down: 8/-15 (-7) 関数 old new delta tcp_v6_rcv 3038 3042 +4 tcp_v4_rcv 3035 3039 +4 tcp_conn_request 2938 2923 -15 合計: Before=24436060, After=24436053, 変更率 -0.00%

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-380173

EPSS

0.00000

アクティビティ

低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!