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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-98432 — UbuntuおよびDebianにおいて、修正済みカーネルが利用可能になるまでの間、CVE-2026-98432を緩和するためにIPオプション付きのIPv4 TCPパケットをドロップする永続的なiptablesルールをインストールする冪等なシェルスクリプトです。 | Kitploit
ツール/GitHubGitHub/mervent/cve-2026-98432
防御ツール脆弱性分析スクリプトと自動化構成監査ネットワークセキュリティ設定ミスインシデントレスポンス
GitHubmervent/cve-2026-98432

cve-2026-98432

UbuntuおよびDebianにおいて、修正済みカーネルが利用可能になるまでの間、CVE-2026-98432を緩和するためにIPオプション付きのIPv4 TCPパケットをドロップする永続的なiptablesルールをインストールする冪等なシェルスクリプトです。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Ubuntu および Debian 向け CVE-2026-98432 の一時的な緩和策

IP オプションを含む受信 IPv4 TCP パケットを破棄し、再起動後もルールを維持し、それが機能することを確認する、単一の冪等なスクリプトです。まだ修正済みカーネルを入手できない Ubuntu (18.04 – 24.04) および Debian (11 – 13) のサーバーを対象としています。

これは暫定措置であり、修正ではありません。 唯一の真の修正は、パッチ適用済みカーネルと再起動です。サーバーが修正済みカーネルで稼働するようになったら、この緩和策を削除してください。

使用方法

curl -fsSL https://raw.githubusercontent.com/Mervent/cve-2026-98432/master/install.sh | sudo sh

何度でも実行できます。ファイルは上書きされ、ルールが重複することはありません。 最後にスクリプトが結果を検証し、失敗した場合は非ゼロで終了します:

--- validation ---
OK    helper installed: /usr/local/sbin/cve-2026-98432-mitigation
OK    cron entry: /etc/cron.d/cve-2026-98432
OK    cron service enabled
OK    iptables rule active (raw/PREROUTING)
OK    exactly one rule (no duplicates)
      plain SYN: connected, SYN with IP options: timeout
OK    drop test: packets with IP options are dropped
--- rule counters ---
 pkts bytes target     prot opt in     out     source               destination
    3   204 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            u32 "0x0>>0x18&0xf=0x6:0xf" /* cve-2026-98432 */

インストールされるもの

パス目的
/usr/local/sbin/cve-2026-98432-mitigationルールを保持するヘルパー。引数なしで実行すると、ルールが存在しない場合に追加します。--check はルールが有効な場合に終了コード 0 で終了します。--remove はルールを削除します。
/etc/cron.d/cve-2026-98432起動のたびにルールを再適用する @reboot エントリ

ルール自体:

iptables -t raw -I PREROUTING -p tcp -m u32 --u32 "0>>24&0xF=6:15" \
    -m comment --comment cve-2026-98432 -j DROP

再起動後の確認

sudo /usr/local/sbin/cve-2026-98432-mitigation --check && echo active
sudo iptables -t raw -L PREROUTING -v -n | grep cve-2026-98432

固定カーネルで起動した後に削除する

sudo /usr/local/sbin/cve-2026-98432-mitigation --remove
sudo rm /usr/local/sbin/cve-2026-98432-mitigation /etc/cron.d/cve-2026-98432

お使いのディストリビューションで修正が提供されているかどうかを確認するには、 Ubuntu または Debian を確認してください(Debian 9 – 11 の場合は Freexian ELTS tracker)。 お使いのリリースが「Fixed」と表示されたら、apt update && apt full-upgrade を実行し、再起動してから緩和策を削除してください。

2026年11月1日時点で、Debian 12(linux 6.1.190-1、DLA-4841-1)と Debian 13(linux 6.12.113-1、 DSA-6568-1)には修正済みカーネルが既に提供されているため、これらのリリースではこのスクリプトを使わずにアップグレードしてください。 Debian 11 の修正(linux 5.10.272-1、ELA-1846-1)は Freexian の ELTS リポジトリにのみ存在します。商用ですが、 個人および小規模な非営利団体は申請により無償で利用できます。

根拠

脆弱性について

CVE-2026-98432(「ipv4: free inet_opt and ireq_opt after an RCU grace period」)は、IPv4 TCP ハンドシェイクにおける use-after-free です。Linux 4.4 以降に影響し、CVSS 9.8 と評価されています。

SYN が IPv4 オプションを運んでいる場合、カーネルはそれを SYN-ACK でエコーバックできるようリクエストソケットに保存します。 その後 tcp_v4_syn_recv_sock() がそのバッファをコピーせずに子ソケットへ渡します。 子ソケットが破棄されると、バッファは単純な kfree() で解放されますが、その間にも別の CPU が再送された SYN に対する SYN-ACK を構築するためにそのバッファを読み取っている可能性があります。

これらはすべて、アプリケーションが接続を認識する前にカーネル内で発生します。リッスンしている任意の IPv4 TCP ポート(SSH、HTTP、PostgreSQL など)がこの方法で到達可能であり、認証情報は不要です。 Anthropic は、マルチパス TCP(MPTCP)リスナーを持つホストに対して動作するリモート root エクスプロイトを報告しました。 Go Security Team は、このバグが MPTCP に固有のものではないと指摘しています。

IP オプション付きの TCP パケットを破棄する理由

早期に解放されてしまうメモリは、受信した SYN が IPv4 オプションを運んでいる場合にのみ存在します。オプションがなければ 保存されるバッファも存在しないため、use-after-free が作用する対象がありません。正当な TCP トラフィックが IPv4 オプションを運ぶことは実質的に皆無であるため、これらのパケットを破棄しても実用上のコストはかかりません。Red Hat (RHSB-2026-016)と AlmaLinux は同等の nftables ルールを公開しています。

u32 "0>>24&0xF=6:15" は IHL フィールド、すなわち 32 ビットワード単位の IPv4 ヘッダ長を読み取ります。値 5 は オプションなしの 20 バイトヘッダを意味します。6 から 15 の値はオプションが存在することを意味します。

Red Hat は、このようなルールは「この脆弱性への露出を減らすが、完全に防ぐことはできない」と述べています。 カーネルにパッチが適用されるまでは、リスク低減策として扱ってください。

raw / PREROUTING を使う理由

  • PREROUTING は、ホスト宛てのトラフィックと、公開ポート上の Docker コンテナへ転送されるトラフィックの両方を含む、 すべての受信パケットを検査します。ufw がルールを配置する INPUT にルールを置くと、転送トラフィックを取りこぼします。
  • raw テーブルはコネクショントラッキングより前に実行されるため、破棄されたパケットが conntrack エントリを作成することはありません。
  • ufw と Docker は raw/PREROUTING をフラッシュしないため、ルールはそれらの再起動後も維持されます。

nftables ではなく iptables を使う理由

  • iptables はすべての対象 Ubuntu リリースに存在します。Ubuntu 18.04 と 20.04 ではレガシーバックエンドを使用し、 Ubuntu 22.04 以降および Debian 11 以降では iptables-nft です。nft バイナリはすべての環境にデフォルトで インストールされているわけではありません。Debian では iptables 自体が存在しない場合があり、その場合スクリプトは apt install iptables の実行を促します。
  • iptables-nft を使用する場合、ufw/Docker とこのルールは nf_tables バックエンドを共有するため、1 つのルールで両方をカバーできます。
  • u32 マッチには xt_u32 カーネルモジュールが必要です。存在しない場合、スクリプトは失敗し、modinfo xt_u32 を 確認するよう指示します。

cron の @reboot エントリを使う理由

  • nftables.service ではない。 Ubuntu では /etc/nftables.conf が flush ruleset で始まり、サービスは停止時に nft flush ruleset を実行する。どちらも ufw と Docker のルールを消し去ってしまう。
  • iptables-persistent ではない。 netfilter-persistent save は Docker のものを含む現在のすべてのルールをダンプし、そのスナップショットを起動時に復元すると Docker 自身が作成するルールと競合する。
  • ufw の before.rules ではない。 これは ufw が有効な場合にしか機能せず、そのチェーンはコンテナへの転送トラフィックを認識しない。
  • cron.d。 標準の Ubuntu および Debian サーバーにインストールされており(スクリプトが存在を確認する)、/etc/cron.d 内のファイルは上書きによって冪等になり、削除も rm 一発で済む。トレードオフは、起動後ネットワークが立ち上がってから cron がルールを適用するまでの数秒間の空白である。次のカーネル更新まで持てばよい緩和策としては許容範囲である。

単に net.mptcp.enabled=0 ではだめな理由

MPTCP を無効化しても、公開されているエクスプロイトの前提条件が取り除かれるだけで、バグ自体は残る。通常の TCP リスナーも同じ脆弱なコードを通る。MPTCP リスナーのないサーバー(ss -Mlnp が何も出力しない)では、この sysctl は何も変えない。無害な追加措置ではあるが、このルールの代替にはならない。

検証

スクリプトは、ヘルパーと cron エントリがインストールされていること、cron が有効であること、そしてルールがちょうど 1 つだけアクティブであることを確認する。その後 python3 を使ったエンドツーエンドのドロップテストを実行する(python3 がなければスキップされる):

  1. 127.0.0.1 でリスナーを開く。
  2. IP オプションなしで 1 回接続する。この接続は成功しなければならない。
  3. Record Route IP オプション付きで 1 回接続する。この接続はタイムアウトしなければならない。

ループバックトラフィックは raw/PREROUTING を通るため、これはルールが実際にパケットをドロップしていること、単にテーブルに存在するだけではないことを証明する。

制限事項

  • カーネルのバグを修正するものではない。Red Hat は、IP オプションのフィルタリングではエクスプロイトを「完全には防げない」と述べている。
  • 同一ホストブリッジ上のコンテナ間トラフィックを見逃す可能性がある。AlmaLinux は、そのようなトラフィックがこの種のフィルターを「バイパスする可能性がある」と警告している。
  • IPv4 オプションで伝送される CIPSO セキュリティラベルを壊す。それらに依存するネットワークでは使用しないこと。
  • 起動後、cron がルールを適用するまでの数秒間の空白がある。
  • IPv6 には手を付けていない。主なバグは IPv4 のみである。

テスト済み

Ubuntu 24.04 カーネル 6.8.0-100-generic を実行する Docker ホスト上のコンテナ(ubuntu:18.04、20.04、22.04、24.04、debian:11-slim、12-slim、13-slim)で実行した。各実行では、パイプ経由のインストール、重複ルールなしでの再インストール、ドロップテスト、cron @reboot による削除済みルールの復旧をカバーした。

リリースiptables結果
Ubuntu 18.041.6.1 (legacy)合格
Ubuntu 20.041.8.4 (legacy)合格
Ubuntu 22.041.8.7 (nf_tables)合格
Ubuntu 24.041.8.10 (nf_tables)合格
Debian 111.8.7 (nf_tables)合格
Debian 121.8.9 (nf_tables)合格
Debian 131.8.11 (nf_tables)合格

すべてのイメージはホストカーネルを共有していた。これらのリリースの標準カーネルにおける xt_u32 の可用性はテストされておらず(Ubuntu 24.04 の 6.8 カーネルのみが試された)、実際の再起動も行われていない。

出典

  • Ubuntu CVE tracker — カーネル CVE の完全な説明とリリース別ステータス
  • Debian security tracker および Freexian ELTS tracker
  • Fix commit e3f33b0
  • Red Hat RHSB-2026-016
  • AlmaLinux advisory
  • Go Security Team on MPTCP, via oss-security
  • Atlas write-up
ツールをダウンロード