Linux Kernelの脆弱性(Critical: CVE-2026-98432)

10/15/2026にLinux Kernelの脆弱性(Critical: CVE-2026-98432)が公開されました。遅くなりましたが、今回はこちらの脆弱性の概要と、各ディストリビューションの対応について纏めます。

[過去関連リンク]

CVSS/プライオリティ


  • CVE-2026-98432
    • 影響するバージョン
      • N/A
    • Priority/CVSS SCORE
      • CNA(CVSSv4): Not disclosed:
      • CNA(CVSSv31): 9.8: CRITICAL
      • NVD(CVSSv4): Not disclosed
      • NVD(CVSSv31): Not disclosed
      • Red Hat(CVSSv4): Not disclosed
      • Red Hat(CVSSv31): 9.8 : Critical
    • CVSS Vector
      • CNA(CVSSv4): Not disclosed
      • CNA(CVSSv31): CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
      • NVD(CVSSv4): Not disclosed
      • NVD(CVSSv31): Not disclosed
      • Red Hat(CVSSv4): Not disclosed
      • Red Hat(CVSSv31): CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    • EPSS Score/Percentile
      • DATE(JST): 2026-10-31
      • EPSS: 0.004570000
      • Percentile: 0.396730000

修正方法

各ディストリビューションの情報を確認してください。

CVE概要(詳細はCVEのサイトをご確認ください)

https://www.cve.org/CVERecord?id=CVE-2026-98432
  • ipv4: free inet_opt and ireq_opt after an RCU grace period
  • ipv4: RCU猶予期間の後のinet_opt, ireq_optの開放への変更
  • Linuxカーネルにおいて、以下の脆弱性が修正されました:ipv4において、RCUの猶予期間(grace period)が経過した後に”inet_opt”および”ireq_opt”を解放するように変更されました。”tcp_v4_syn_recv_sock()”は、”ireq->ireq_opt”をコピーすることなく、そのまま子ソケット(”newinet->inet_opt”)へ所有権を移します。この際、別のCPUが同じリクエストソケットに対する再送SYNを並行して処理し、”tcp_check_req()”からSYNACKを送信してしまう可能性があります。 “tcp_v4_send_synack()”および”inet_csk_route_req()”は”rcu_read_lock()”で保護された状態で”ireq->ireq_opt”を読み取りますが、その後の”ip_build_and_send_pkt()”や”ip_options_build()”において、”opt->optlen”が2回読み取られることになります。 なお、SYNACKタイマー自体は問題ではありません。タイマーはリクエストソケットへの参照を保持しており、子ソケットが解放される前に”inet_csk_reqsk_queue_drop()”が”timer_delete_sync()”を呼び出すためです。 コミット 079096f103fa (“tcp/dccp: install syn_recv requests into ehash table”) 以降、リクエストソケットはリスナーロックを保持せずに処理されるようになったため、SYNACKの構築中に子ソケットが解放されることを防ぐ手段がありません。TCPの子ソケットには”SOCK_RCU_FREE”が設定されておらず、”inet_sock_destruct()”が通常の”kfree()”を用いて”inet_opt”を解放してしまうため、”ip_options_build()”において解放済みメモリへのアクセス(use-after-free)が発生します。 同様の問題は、リクエストソケットの移行(”net.ipv4.tcp_migrate_req=1″が有効な場合、または”BPF_SK_REUSEPORT_SELECT_OR_MIGRATE”プログラムを使用している場合)においても存在します。

緩和策

  • AlmaLinuxのブログ(https://almalinux.org/blog/2026-10-30-cve-2026-98432/)に緩和策があります。
    • このバグは、IPv4オプションを含むTCP接続要求によってのみ発生します。通常の通信ではIPv4オプションはほとんど使用されないため、IPv4オプションを含む受信IPv4 TCPパケットを破棄することで、通常の接続に影響を与えることなくバグの発生を阻止できます。
    • nftablesが使えるのであれば、下記のようなnftablesルールで緩和できます。
sudo nft -f - <<'EOF'
add table ip cve_2026_98432
delete table ip cve_2026_98432
table ip cve_2026_98432 {
    chain prerouting {
        type filter hook prerouting priority -300; policy accept;
        meta l4proto tcp ip hdrlength > 5 counter drop
    }
}
EOF

主なディストリビューションの対応方法

詳細は、各ディストリビューションの提供元にご確認ください


対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。

[参考]

タイトルとURLをコピーしました