Linux カーネル IPv4 TCP メモリ破壊脆弱性
技術分析 • 脆弱性リサーチ • 防御的セキュリティ
概要 • 分析 • 影響を受けるバージョン • 検出 • 緩和策
CVE-2026-98432 は、Linux カーネルの IPv4 ネットワークサブシステムに影響を与える重大なユースアフターフリー(UAF)脆弱性です。
この脆弱性は、TCP 接続要求の並行処理中における不適切なメモリライフタイム管理に起因します。
特定の条件下では、IPv4 ソケットオプションを含むカーネルメモリが、別の実行パスがまだアクセスしている間に解放される可能性があります。
これにより、以下のような結果を引き起こしうるメモリ破壊の状態が生じます:
| プロパティ | 詳細 |
|---|---|
| CVE ID | CVE-2026-98432 |
| 製品 | Linux カーネル |
| コンポーネント | IPv4 ネットワーキング |
| 脆弱性 | ユースアフターフリー |
| CWE | CWE-825 |
| CVSS v3.1 | 9.8 クリティカル |
| 攻撃ベクトル | ネットワーク |
| 攻撃の複雑さ | 低 |
| 必要な権限 | なし |
| ユーザー操作 | なし |
| プロトコル | IPv4 / TCP |
| 導入バージョン | Linux カーネル 4.4 |
| 公開日 | 2026年10月15日 |
| 影響を受けるファイル | net/ipv4/af_inet.c, net/ipv4/tcp_ipv4.c |
この脆弱性は、IPv4 ソケットオプション構造体の所有権と解放に関係しています。
TCP 接続確立中、以下の関数が:
tcp_v4_syn_recv_sock()
所有権を移転します:
ireq->ireq_opt
子ソケットへ:
newinet->inet_opt
転送は基盤となる構造をコピーせずに行われる。
別の CPU が同時に再送された SYN 要求を処理し、RCU で保護された読み取りパスを通じて同じオプションにアクセスする可能性がある。
リーダーがまだアクセスしている間に、関連するメモリが通常の kfree() を使用して解放されると、Use-After-Free 状態が発生する可能性がある。
| 関数 | 目的 |
|---|---|
tcp_v4_syn_recv_sock() | 子 TCP ソケットを作成する |
tcp_v4_send_synack() | TCP SYN-ACK 応答を送信する |
inet_csk_route_req() | 要求ソケットのルーティングを処理する |
ip_options_build() | IPv4 オプションを構築する |
inet_sock_destruct() | インターネットソケットを破棄する |
tcp_v4_reqsk_destructor() | TCP 要求ソケットを破棄する |
問題となる解放動作:
kfree(opt);
上流の修正ではRCU対応の解放処理を使用しています:
kfree_rcu(opt, rcu);
これにより、関連する RCU グレースピリオドが経過するまでメモリの解放が遅延され、既存のリーダーが安全に処理を完了できるようになります。
主なセキュリティ上の懸念は、カーネル内部における不適切なメモリアクセスです。
想定される影響には、システムの不安定化、メモリ破壊、および実行環境によってはより深刻なエクスプロイトが含まれます。
この脆弱性は Linux カーネル 4.4 で導入されました。
以下のアップストリームリリースには、対応する修正が含まれています:
| カーネルブランチ | 修正バージョン |
|---|---|
| 5.10 | 5.10.272 |
| 5.15 | 5.15.223 |
| 6.1 | 6.1.190 |
| 6.6 | 6.6.159 |
| 6.12 | 6.12.113 |
| 6.18 | 6.18.56 |
| 7.2 | 7.2.10 |
| 7.3 | 7.3 |
重要: ディストリビューションのベンダーはセキュリティ修正をバックポートする場合があります。古く見えるカーネルバージョンであっても、インストールされているパッケージが脆弱であるとは限りません。
以下のコマンドは防御的な調査を目的としたものであり、脆弱性を悪用するものではありません。
uname -r
cat /etc/os-release
uname -a
Debian / Ubuntu / Kali:
dpkg -l | grep linux-image
RHEL / Fedora:
rpm -qa | grep '^kernel'
sysctl net.ipv4.tcp_migrate_req
これらのチェックはシステム情報を提供しますが、脆弱性の状態を独立して確認するものではありません。インストールされているパッケージを、お使いのディストリビューションのセキュリティアドバイザリと照合して確認してください。
Debian / Ubuntu / Kali Linux:
sudo apt update
sudo apt full-upgrade
RHEL / Fedora:
sudo dnf update kernel
更新されたカーネルをインストールした後、再起動します:
sudo reboot
実行中のバージョンを確認します:
uname -r
注記: ネットワーク制限は多層防御の手段であり、カーネルパッチの適用に代わるものではありません。
Linuxカーネルは、影響を受けるデストラクタでRCU対応のメモリ解放を使用することで、この問題を解決しています。
| カーネルブランチ | 修正コミット |
|---|---|
| 5.10 | b3b027ef0cd322bfa839b9aaf5b27551eea54cf6 |
| 5.15 | 95a8c8fa9f27dce64c40c41c062de7728bf34ab5 |
| 6.1 | 89b5b1eb7d633c33832b7ff2c02e19a144705036 |
| 6.6 | 742f73df544e03744f2981c467d6542fe8172a2a |
| 6.12 | 11a03ce3c4a62d84c10ccdfe47f8075006498568 |
| 6.18 | a47406c769f72c070386985488f1c4d057df86b2 |
| 7.2 | 26d4c36d318cffbbd160884a0e4cec0da4da4936 |
| 7.3 | e3f33b0a1d89d738e2b913dab519226eaf76e15b |
本番システムでは、個々のコミットを手動でチェリーピックするのではなく、ベンダーがサポートする完全なカーネルアップデートを優先してください。
公式のセキュリティ参考資料:
このリポジトリは以下を目的としています:
すべてのセキュリティテストは、自身が所有するシステム、または評価について明示的な許可を得たシステム上でのみ実施してください。
無許可の悪用は推奨されません。
Schwachstellen verstehen. Systeme stärken.
Linuxカーネルセキュリティ研究 | CVE-2026-98432