先に要点
- Linux カーネルの IPv4 の TCP 処理に、外から細工したパケットで解放済みのメモリを読ませられる脆弱性(CVE-2026-98432、CVSS 9.8)が見つかりました。認証は要らず、カーネル 4.4 以降が対象です。
- 関係するのは、外部のネットワークから IPv4 の TCP で接続を受ける(待ち受けポートを持つ)サーバーです。IPv6 だけの通信は、この問題の主な部分の対象外です。
- 2026年11月1日の時点で、悪用確認済みの一覧(KEV)には載っていません。ただし、実証が報告されており、Red Hat は Critical に分類しています。
- 根本対策は修正入りのカーネルへの更新と再起動です。Debian は修正版が出ていますが、Ubuntu と RHEL は10月30日時点で修正版が未公開です。
- 修正が出るまでは、IP オプション付きの TCP パケットを落とす nftables のルールが各社の案内にあります。ただし再起動で消え、正規の通信を落とすこともあるので、更新の代わりにはなりません。
自社や自分の Linux サーバーを運用している方向けの記事です。「カーネルに深刻な TCP の脆弱性が出たらしい」と聞いて、自分のサーバーは対象か、いまできることは何かを確かめたい人が、そのまま作業できるようにまとめました。
この記事は、CVE レコード(kernel.org が採番、MITRE の API で確認)、Debian のセキュリティトラッカー、Ubuntu の CVE ページ、Red Hat のセキュリティ情報(RHSB-2026-016)、AlmaLinux と CIQ(Rocky Linux の提供元)の告知、oss-security への投稿、CISA の KEV をもとにしています(いずれも2026年11月1日に確認)。修正版の状況は日々変わるので、作業の前にお使いのディストリビューションの最新の案内を確かめてください。
何が起きたのか:再送された SYN と解放のすれ違い
TCP の接続を始めるとき、相手が最初に送るパケットを SYN と呼びます。この SYN に IP オプション(通常の通信ではほとんど使われない付加情報)が付いていると、カーネルは接続が完成するまでそのオプションを保持します。
CVE レコードによると、接続が完成するとき、カーネルはこのオプションをコピーせずに新しい接続へ引き渡します。そのため、相手が SYN を再送し、別の CPU がその応答(SYN-ACK)を作っている最中に、接続のほうが閉じられてオプションが解放されると、応答の処理が解放済みのメモリを読んでしまいます。これが use-after-free(解放後のメモリの利用)です。
解放済みのメモリが読まれる流れ(CVE レコードの説明より)
- 1IP オプション付きの SYN が届く
カーネルは、接続が完成するまでそのオプションを保持する。
- 2接続が完成し、オプションが新しい接続へ渡る
このときオプションはコピーされず、同じものを引き継ぐ。
- 3相手が SYN を再送し、別の CPU が応答を作り始める
応答の処理は、保持されたオプションを読む。
- 4その間に接続が閉じられ、オプションが解放される
解放が読み終わりを待たずに行われる。
- 5応答の処理が解放済みのメモリを読む
クラッシュやメモリの破壊につながりうる。修正は、解放を読み終わるまで待たせる。
| 項目 | 内容 |
|---|---|
| CVE | CVE-2026-98432(kernel.org が採番。公開は2026年10月15日) |
| 深刻度 | CVSS 3.1 で 9.8(Critical)。ネットワークから、認証なし、利用者の操作なし |
| 起きること | カーネルのクラッシュ(DoS)、メモリの破壊などが想定される。CIQ の整理では、kernel.org の記録に情報の漏えいや範囲外の書き込みも挙がっている |
| 導入された時期 | カーネル 4.4(接続の途中の状態を別の表に入れる変更)。それ以前は対象外 |
| 修正の中身 | オプションの解放を、他の CPU が読み終わるのを待ってから行う形に変更(kfree_rcu()) |
| IPv6 | この問題の主な部分は IPv4 のみ。IPv6 の移行処理の同様の問題は別のパッチで扱う予定と記載 |
Go のセキュリティチームの告知は、Anthropic の研究の解説(告知の中で参照)をもとに、MPTCP(複数経路の TCP)の待ち受けがあるサーバーで遠隔からコードを実行できる実証が報告されていると紹介しています。一方で、同じ告知は「この脆弱性自体は MPTCP に限られない」とも書いています。MPTCP を無効にしても、通常の TCP の待ち受けへの攻撃経路は残る可能性があるため、MPTCP を切れば安心とは考えないほうが安全です。
自分のサーバーは対象か:条件と、修正の状況
対象は、カーネル 4.4 以降で、IPv4 の TCP ポートを外部のネットワークに向けて開いているサーバーです。Web サーバー、SSH、データベースなど、何であっても「接続を受ける側」であれば当てはまります。ディストリビューションの AlmaLinux は「信頼できないネットワークから IPv4 の TCP 接続を受けるシステムは、危険にさらされていると考える」と説明しています。
コンテナを使っている場合、コンテナはホストのカーネルを共有します。コンテナ側で何かを入れ替えても直らず、ホストのカーネルを更新して再起動する必要があります。
# 動いているカーネルの版(共通)
uname -r
# 待ち受けている IPv4 の TCP ポート(外部から届くものがあるか)
ss -ltn4
# RHEL 系:パッケージの変更履歴に、この CVE への言及があるか(修正が入っていれば表示される)
rpm -q --changelog kernel | grep CVE-2026-98432
# MPTCP が有効か(1 なら有効)
sysctl net.mptcp.enabled
修正の状況は、2026年11月1日の時点で次のとおりです。
| ディストリビューション | 状況 | 出典 |
|---|---|---|
| Debian 13(trixie) | 修正済み:6.12.113-1(DSA-6568-1) | Debian のセキュリティトラッカー |
| Debian 12(bookworm) | 修正済み:6.1.190-1(DLA-4841-1)。linux-6.12 を使う場合は 6.12.113-1~deb12u1(DLA-4850-1) | 同上 |
| Ubuntu 26.04・24.04・22.04 LTS | 脆弱性ありと記載、修正は作業中(版番号は予定で、公開済みではない) | Ubuntu の CVE ページ |
| Ubuntu 20.04 LTS 以前 | 脆弱性ありと記載。修正の作業中の表示も無い(14.04 は対象外) | 同上 |
| RHEL 8・9・10 | 影響あり、Critical。修正版は未公開(10月30日時点で「リリースを急いでいる」) | Red Hat の RHSB-2026-016 |
| AlmaLinux 8・9・10 | 修正カーネルはテスト用のリポジトリのみ(10月30日時点) | AlmaLinux のブログ |
| Rocky Linux 8・9・10 | 修正カーネルは未提供(CIQ の確認、10月30日時点) | CIQ の告知 |
| 上流のカーネル | 5.10.272・5.15.223・6.1.190・6.6.159・6.12.113・6.18.56・7.2.10 で修正。7.3 は修正入り | CVE レコード |
上流の整理では RHEL 6 と 7 は対象外とされています(CIQ の記載)。一方、Ubuntu の 20.04 以前は「脆弱性あり」のままで、標準の更新では直らない可能性があります。サポートが切れた版を外向けに使っている場合は、つなぎの対策だけに頼らず、更新できる版への移行を計画に入れてください。
更新の手順:修正が出ているものから、更新して再起動する
修正入りのカーネルが出ているディストリビューション(Debian など)では、パッケージを更新し、再起動します。更新しただけで再起動しないと、古いカーネルが動き続けます。
# Debian・Ubuntu:更新して再起動
sudo apt update && sudo apt upgrade
sudo reboot
# 再起動後に版を確かめる(Debian 12 なら 6.1.190-1 以降、Debian 13 なら 6.12.113-1 以降)
uname -v
# RHEL 系:修正が公開されたら
sudo dnf update kernel\*
sudo reboot
修正が未公開のとき
Ubuntu と RHEL は、修正が出るまで待つしかありません。それぞれのセキュリティ情報(Ubuntu の CVE ページ、Red Hat の RHSB-2026-016)を毎日確かめ、公開されたら当日中に更新と再起動を行う手順を決めておきます。
再起動の段取り
再起動は接続を切ります。冗長化している場合は、1台ずつ順に行い、先に外部から届く台を優先します。再起動後は uname -r で版が変わったことを必ず確かめます。
AlmaLinux のテスト版
AlmaLinux の修正カーネルはテスト用のリポジトリで公開されています。本番に入れるかは、検証環境で動作を確かめてから判断してください。公式の本番リポジトリに移るのを待つ選択もあります。
修正が出るまでのつなぎ:IP オプション付きの TCP を落とす
Red Hat、AlmaLinux、CIQ は、IP オプション付きの IPv4 の TCP パケットを、カーネルに届く前に落とす nftables のルールを案内しています。この脆弱性の入口が「IP オプション付きの SYN」なので、そこを塞ぐ考え方です。Red Hat の案内にあるルールは次のとおりです。
# cve-2026-98432.nft として保存
table inet cve_2026_98432 {
chain input {
type filter hook input priority -310; policy accept;
ip protocol tcp ip hdrlength > 5 counter drop
}
}
# 構文を確かめてから適用し、入ったことを確認する
sudo nft --check --file cve-2026-98432.nft
sudo nft --file cve-2026-98432.nft
sudo nft list table inet cve_2026_98432
# 修正入りのカーネルに更新したあと、ルールを消す
sudo nft delete table inet cve_2026_98432
これで防げないもの
Red Hat は「この対策は脆弱性を完全には防げず、更新の代わりにならない」と明記しています。同じホストのコンテナどうしの通信は、このルールを通らないことがあります(AlmaLinux の指摘)。
困るもの
IP オプションを使う正規の通信も落ちます。CIPSO・NetLabel のようなラベル付きのネットワークでは使えません(AlmaLinux の注意)。必ず本番の前に検証環境で試してください。
再起動で消える
上の手順は、そのままでは再起動すると消えます(AlmaLinux の指摘)。残すには、設定ファイルと起動時の読み込みを別に用意する必要があります。消えたことに気づかないのを避けるため、再起動のたびに確認する手順を決めます。
MPTCP を使う必要がなければ、net.mptcp.enabled を 0 にし、ss -lnMp で MPTCP の待ち受けが無いことを確かめるのも、実証コードの経路を減らす補助になります。Go で作ったプログラムは、Go 1.24 から待ち受けで MPTCP が既定で有効になっているため、環境変数 GODEBUG=multipathtcp=0 で切ることもできます。ただし Go のチーム自身が「壊れやすい対策」と呼んでいて、1つでも MPTCP の待ち受けが残れば危険が残ります。
oss-security には、起動パラメータ init_on_free=1(解放時にメモリをゼロにする)を併用するという個人の提案もあります。読み出し内容が狭まるという考え方で、一般的な負荷は1〜5%とされています。ただしバグそのものは残り、公式の案内ではないので、あくまで補助として、自分の環境で性能を測ってから検討する位置づけです。
どれくらい急ぐか:評価が割れている点と、悪用の状況
悪用の状況
CISA の KEV には、2026年11月1日の時点で載っていません。Red Hat も、悪用の有無や攻撃コードの公開は書いていません。ただし、遠隔から認証なしで狙える点は共通しています。
深刻度の見方
kernel.org の CVE 発行元は 9.8 としています。CIQ の整理では、上流の評価は「攻撃の複雑さが高い」として 8.1 で、見方が割れています。再送のタイミングが絡む競合の問題なので、攻撃に精密さが要るためと考えられます。
実際の対応の優先
それでも、外部に向けて待ち受けるサーバーは優先して更新します。社内だけに閉じたサーバーは、その次です。KEV に載ったら期限つきの対応に切り替えます。
「複雑さが高い」は、安全という意味ではありません。実証が報告され、Debian が修正を出し、Red Hat が Critical にしている以上、修正が出た時点で速やかに更新できる体制を整えておくのが現実的です。
手順のまとめ
1. 洗い出す
外部から IPv4 の TCP で届くサーバーを一覧にし、uname -r と使っているディストリビューションを控えます。
2. 修正があるものは更新
Debian などは更新して再起動し、版を確かめます。コンテナのホストも同じです。
3. 無いものは備える
情報を毎日確かめ、公開された日に更新できるよう準備します。つなぎのルールは検証環境で試してから、必要なら入れます。
参考にした情報
- CVE レコード:CVE-2026-98432(kernel.org が採番)
- Debian:セキュリティトラッカー
- Ubuntu:CVE ページ
- Red Hat:RHSB-2026-016、CVE ページ
- AlmaLinux:CVE-2026-98432 の告知
- CIQ:緩和策の案内
- oss-security:Go セキュリティチームの告知(10月29日)、init_on_free の提案(10月31日)
同じ週に更新が求められている話題は、Linux カーネルの権限昇格 Fragnesia(KEV 掲載済み)にまとめています。優先順位の考え方は KEV カタログの記事、年間の一覧は 2026年のセキュリティ更新の記録です。