Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-98432-mitigation — CVE-2026-98432(Linux IPv4 TCP ireq_opt の use-after-free)に対する一時的な緩和策:IP オプション付きの IPv4 TCP をドロップし、MPTCP を無効化します。テスト済みスクリプト+検証付き。EN/KO。 | Kitploit
ツール/GitHubGitHub/typhoon1217/cve-2026-98432-mitigation
防御ツールコンテナセキュリティ脆弱性分析構成監査ネットワークセキュリティ設定ミスインシデントレスポンス
GitHubtyphoon1217/cve-2026-98432-mitigation

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

cve-2026-98432-mitigation

CVE-2026-98432(Linux IPv4 TCP ireq_opt の use-after-free)に対する一時的な緩和策:IP オプション付きの IPv4 TCP をドロップし、MPTCP を無効化します。テスト済みスクリプト+検証付き。EN/KO。

リポジトリを見る
101146日前未レビュー

한국어

CVE-2026-98432 一時的な緩和策

このリポジトリには、Linux ホスト上で IP オプションを含む IPv4 TCP パケットを破棄するスクリプトが含まれています。SELinux/Smack NetLabel CIPSO ラベリングを使用していないホストでは、そのようなパケットがなければ CVE-2026-98432(Linux カーネルの IPv4 TCP use-after-free)は発生しません。これは一時的な緩和策であり、修正ではありません。実際のエクスプロイトに対してテストされたものではなく(公開 PoC は存在しません)、ベンダーによる推奨もありません。お使いのディストリビューションがすでに修正済みカーネルを提供している場合は、それをインストールし、本緩和策を適用済みであれば revert.sh を実行してください。提供されていない場合は、緩和策がお使いのホストに該当することを確認したうえで、以下の手順で適用および検証してください(所要時間は約 10 分)。著者は個人の管理者であり、ベンダーではありません。

この緩和策が該当するかどうか

  1. uname -r の出力を、修正済みの安定版バージョン(5.10.272、5.15.223、6.1.190、6.6.159、6.12.113、6.18.56、7.2.10、7.3。修正コミットは e3f33b0a1d89d738e2b913dab519226eaf76e15b)と比較してください。ディストリビューションのカーネルは異なるバージョン番号で修正が含まれている場合があるため、ベンダーのトラッカーも確認してください。
  2. CIPSO ラベリングの有無を確認します: cat /sys/kernel/security/lsm。SELinux または Smack がリストされており、CIPSOV4 マッピングで NetLabel を使用している場合、この緩和策はその経路をカバーしません。
  3. 要件を確認します: root、systemd、および nft。OpenWrt には独自の手順があります(Files を参照)。OpenWrt 以外で systemd のないホストは対象外です。

深刻度: カーネル CNA は CVSS 9.8 を付与しています。Red Hat、Oracle、SUSE は 8.1、Amazon は 7.0 を付与しています。Anthropic は、MPTCP リスナーを持つ Linux サーバーに対するリモート root エクスプロイトについて公開的に説明しました(2026-10-27)。2026-10-29 時点で、実際の悪用は報告されていません。

2026-10-29/30 時点のディストリビューションの状況(スナップショットであるため、ベンダーに確認してください):

ディストリビューション状況
Ubuntu(サポート対象の全リリース)修正済みカーネルなし
RHEL 8/9/10修正済みカーネルなし
Proxmox VE2026-10-30 時点で pve-kernel の changelog にこの CVE の項目なし
Debian、Oracle Linux UEK、一部の SUSE、一部の Amazon Linux修正が利用可能

適用

  1. sudo ./mitigate.sh を実行します。このスクリプトは冪等です(再実行するとルールセットが再読み込みされます)。Files に記載されたファイルをインストールし、root でない場合、nft が存在しない場合、または systemd が存在しない場合は終了します。

  2. 出力を以下のリファレンスと比較してください。最初の行は次のとおりでなければなりません:

    svc=active enabled=enabled mptcp=0
    

    その後に 2 つのルールが続き、1 つは inet テーブル、もう 1 つは bridge テーブルにあります。

  3. サービスが MPTCP で待ち受けている場合は、そのサービスを再起動してください。net.mptcp.enabled=0 は新しいソケットにのみ影響するため、すでに開いている MPTCP リスナーは、そのサービスが再起動するまで MPTCP のままです。この sysctl はネットワーク名前空間ごとの設定であり、mitigate.sh はホストの名前空間に対してのみ設定します。

  4. ホストが LXC または Docker コンテナを実行している場合は、コンテナの項に進んでください。

公開されたエクスプロイトは MPTCP リスナーを標的にしていました。この競合自体は MPTCP を必要としません(修正の説明からの推測)。MPTCP のないホストが完全に侵害され得るかどうかは確立されていません。

検証

ターゲットの SYN-ACK は IP オプションをエコーします。この緩和策を自身で実行しているクライアントはその SYN-ACK を破棄するため、ターゲットが緩和されていなくても check-blocked.py は「blocked」と報告します。あるホストで測定したところ、ターゲットで revert.sh を実行した後でも、緩和済みクライアントからの check-blocked.py は依然として ipopt FAIL TimeoutError を出力しましたが、verify-synack.sh は ipopt synack=5 を示しました。

いずれか 1 つのツールを選んでください:

  1. この緩和策を適用していないクライアントがある場合は、そこで python3 check-blocked.py <host> <port> を実行してください(root は不要)。これは 2 回接続します: まずプレーンで、次に IP_OPTIONS ソケットオプションを通じて IPv4 Record Route オプションを設定して接続します。
  2. それが保証できない場合は、任意のクライアントで sudo ./verify-synack.sh <ip> <port> を実行してください(クライアントに root、tcpdump、python3 が必要)。これは固定の送信元ポートからプレーンな SYN と IP オプション付き SYN を送信し、tcpdump でターゲットの SYN-ACK を数えます。

その後、出力をそのツールの表と比較してください。

check-blocked.py(緩和策を適用していないクライアントから):

出力意味
plain CONNECTED通常の TCP は動作する
ipopt FAIL TimeoutErrorIP オプション付き SYN が意図どおりに破棄された

verify-synack.sh:

出力意味
plain: CONNECTED synack=N | ipopt: TimeoutError synack=0ターゲットは緩和済み
ipopt ... synack>=1ターゲットは緩和されていない(IP オプション付き SYN に応答があった)

カーネルレベルの結果(1 台の Proxmox VE ホスト、カーネル 7.0、2026-10-30): 緩和策をオフにすると、脆弱なコードパスがパスごとに 1 回実行され、WireGuard 経由および LXC から LXC への通信で確認されました。オンにすると、SYN はタイムアウトし、パスは 0 回実行されました。サンプルは 1 台のホスト上の 2 状態における 2 パスです。トレース手法は docs/ANALYSIS.md(英語)にあります。

コンテナ

nftables の状態はネットワーク名前空間ごとであるため、ホストのルールだけではコンテナの名前空間を保護できません。LXC コンテナで測定したところ、ホストのルールのみの場合、コンテナ内部から自身の 127.0.0.1 または自身の IP への IP オプション付き SYN が接続に成功しました。コンテナはホストのカーネルを共有しているため、任意のコンテナ内のコードがこの方法で脆弱なパスに到達する可能性がありました。

  1. まずホストで Apply を完了してください。
  2. ホストで sudo ./inject-netns.sh を実行してください。これは同じルールセットを、実行中のすべての LXC コンテナ(pct/lxc-info、Proxmox 経由)と、実行中のすべての Docker コンテナに読み込みます(host-network コンテナはスキップされます)。
  3. 出力を表と比較してください。
出力意味
ok lxc:<id> または ok docker:<id>そのコンテナの名前空間にルールセットが読み込まれた
injected=N failed=M合計、M は 0 であるべき

この注入は永続的ではありません。コンテナが再起動すると失われるため、再起動後にスクリプトを再実行してください。LXC コンテナ内にネストされた Docker コンテナでは、その LXC コンテナ内でスクリプトを実行する必要があります(未測定)。

測定結果: 5 台の Proxmox ホストにわたり、64 個のコンテナ名前空間に 0 件の失敗で注入されました。注入後、同じテストはタイムアウトし、コンテナ名前空間のドロップカウンターが増加しました。

問題が発生した場合

この緩和策が干渉している症状は、TCP 接続が拒否されるのではなくハングする(タイムアウトする)ことであり、それに加えて次の出力でカウンターが増加します:

nft list ruleset | grep counter
コマンド効果
systemctl stop cve-2026-98432-mitigation即座に停止、再起動時に再び有効化される
systemctl disable --now cve-2026-98432-mitigation現在停止し、再起動後も無効のまま

テスト済みホストで測定した互換性: ルールは専用のテーブルに存在し、Docker、ufw、iptables-legacy の NAT ルール、NetBird (WireGuard) のルーティングと共存しました。通常の TCP 接続は、テストしたすべての経路で動作し続けました。ドロップカウンタは、短い観測期間(数日ではなく数時間)の通常運用中、テストパケットの数値のままでした(正当なトラフィックは一致しませんでした)。

推測であり、測定はしていません: 設定に flush ruleset を含む nftables.service は、リロード時にテーブルを削除します。その有無を確認し、そのようなリロードの後には mitigate.sh を再実行してください。

パッチ適用後の削除

  1. 修正済みカーネルで起動し、uname -r で確認します。
  2. sudo ./revert.sh を実行します。MPTCP も再度有効化したい場合は --mptcp を追加します。
  3. 出力の最終行を比較します:
出力意味
remaining tables: 0ユニットは無効化され、3 つのファイルと両方のテーブルが削除された

制限事項

  1. ブリッジルールはタグなし IPv4 (ether type ip) に一致します。VLAN 対応ブリッジはテストしていません。
  2. 経路ごとのカバレッジ: NIC トラフィック、カプセル化解除されたトンネルトラフィック、ループバックは inet ルールを通過し、ブリッジポート間でスイッチングされるフレームは bridge ルールを通過します。WireGuard とループバックは測定済みです。IPIP、GRE、VXLAN は測定していません(コード上の推論のみ)。
  3. テスト済みホストでは tcp_migrate_req は 0 でした。リクエストソケットのマイグレーション競合には同じく非 NULL の ireq_opt が必要なため、同じルールが適用されます(コード上の推論)。
  4. テスト済みプラットフォーム: Debian 13 上の Proxmox VE(カーネル 6.17、7.0)で LXC と NetBird を使用。Docker と ufw を使用した Ubuntu 24.04 arm64。Arch Linux カーネル 7.2.x。スクリプトのサイクル mitigate、revert、mitigate、inject-netns は 1 台の Proxmox ホストでスモークテストしました。

仕組み

CVE-2026-98432 は IPv4 TCP 接続確立における競合です: 再送された SYN が、別の CPU によってすでに解放された IP オプション (ireq_opt) から SYN-ACK を構築する可能性があります。このバグは Linux 4.4 に由来します。IPv6 はオプションをコピーするため、主要な競合の影響を受けません。メインラインのソースでは、ireq_opt が非 NULL になるのは、SYN が IPv4 ヘッダーオプションを伴っていた場合 (IHL > 5)、または CIPSOV4 マッピングを伴う SELinux/Smack NetLabel を経由した場合のみです。ireq_opt が NULL であれば、解放または読み取りの対象はありません。prerouting 優先度 -310 のルール ip protocol tcp ip hdrlength gt 5 counter drop は、カーネルがオプションを解析する前に最初のケースをドロップします。ソースの詳細な解説は docs/ANALYSIS.md(英語)にあります。

ファイル

ファイル内容
mitigate.sh/etc/cve-2026-98432.nft(2 つのテーブル、inet prerouting と bridge prerouting、それぞれに ip protocol tcp ip hdrlength gt 5 counter drop、優先度 -310)、起動時に network-pre.target より前にこれをロードする systemd oneshot ユニット cve-2026-98432-mitigation.service、および net.mptcp.enabled = 0 を含む /etc/sysctl.d/99-cve-2026-98432.conf をインストールします
revert.shmitigate.sh がインストールしたすべてを削除します(パッチ適用後の削除を参照)
inject-netns.shルールセットをコンテナのネットワーク名前空間にロードします(コンテナを参照)
check-blocked.pyroot 権限なしでの接続テスト(検証を参照)
verify-synack.shSYN-ACK カウントテスト(検証を参照)
openwrt/10-cve-2026-98432.nftinet ルールをチェーンとして含む OpenWrt fw4 インクルード(テーブルブロックなし)。/etc/nftables.d/ にコピーし、fw4 check && fw4 reload を実行します
docs/ANALYSIS.mdソースレベルの推論と kprobe の手法(英語)
LICENSEMIT

問題の報告

このリポジトリで GitHub issue を作成してください。

ツールをダウンロード