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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-98432 — UbuntuカーネルのCVE-2026-98432に対するパッチ適用状態を評価し、IPオプションを含むIPv4 TCPパケットをドロップする永続的なnftablesまたはiptablesの暫定対策を適用するシェルスクリプトです。 | Kitploit
ツール/GitHubGitHub/ndeet/cve-2026-98432
防御ツール脆弱性分析構成監査ネットワークセキュリティ設定ミスインシデントレスポンス
GitHubndeet/cve-2026-98432

cve-2026-98432

UbuntuカーネルのCVE-2026-98432に対するパッチ適用状態を評価し、IPオプションを含むIPv4 TCPパケットをドロップする永続的なnftablesまたはiptablesの暫定対策を適用するシェルスクリプトです。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Ubuntu 16.04、22.04、24.04、26.04 向け CVE-2026-98432 緩和策

クイックスタート

# 1. Inspect the host; no changes.
sudo ./cve-2026-98432-mitigate.sh check

# 2. Get a patch-state verdict for the exact running kernel package.
sudo ./cve-2026-98432-mitigate.sh assess

# 3. Apply the stopgap filter and make it survive reboot.
sudo ./cve-2026-98432-mitigate.sh enable

# 4. Prove that normal TCP still works and IP-option TCP is dropped.
sudo ./cve-2026-98432-mitigate.sh verify

# 5. Monitor. Exit 0 = healthy, 1 = mismatch/persistence failure, 2 = no state.
sudo ./cve-2026-98432-mitigate.sh status

# 6. After booting a kernel that Ubuntu marks as fixed.
sudo ./cve-2026-98432-mitigate.sh disable

enable は CIPSO/NetLabel が検出されるとルールセットの変更を拒否します。これは、このルールが IP オプションを含むすべての TCP をドロップするためであり、ラベル付きトラフィックも含まれるからです。このトレードオフを受け入れる場合にのみ --ignore-cipso を使用してください。systemd のないコンテナやホストでは --no-persist を使用してください。そうしない場合、再起動後の永続化を確立できないときに enable はアクティブなルールを維持したまま終了コード 4 で終了します。

何をするか、なぜか

CVE-2026-98432 は Linux IPv4 TCP ハンドシェイクにおける use-after-free です。受信 SYN が IP オプションを運ぶ場合に到達可能です。本当の修正はパッチ適用済みカーネルです。このスクリプトは暫定措置であり、IP ヘッダ長が 5 より大きい(IHL 6-15)、すなわち IP オプションを運ぶ受信 IPv4 TCP パケットを、conntrack と Docker NAT の前にドロップします。

2 つの等価なバックエンドをサポートします:

  • nftables: table ip cve_2026_98432、prerouting 優先度 -310、TCP のみ、カウンタ、ドロップ。
  • iptables: raw PREROUTING、u32 マッチ 0>>24&0xf=6:15、TCP のみ、カウンタ、ドロップ。

nft の形式は ip ファミリと数値優先度を使用するため、Ubuntu 16.04 の nft 0.5 でも最新の nft 1.x でも動作します。iptables の形式は iptables 1.6 以降で動作します。--install-nft が渡されない限り、パッケージはインストールされません。

スクリプトは断片ではなく、完全な期待ルールを検証します。nft では、pre チェーンが正確に優先度 -310(またはレガシーな raw - 10 表記)で prerouting フックを持ち、期待される DROP が最初のルールであることを要求します。iptables では、iptables -C が成功し、正規化後に完全な最初の raw PREROUTING ルールが一致することを要求します。enable は再適用を拒否する代わりに、ずれたルールを修復します。

取り込んだ情報源

  • Ubuntu セキュリティトラッカー: https://ubuntu.com/security/CVE-2026-98432
  • BTCPay Server Docker PR #1224: https://github.com/btcpayserver/btcpayserver-docker/pull/1224
  • rockstardev gist: https://gist.github.com/rockstardev/06f8ec3225cb30725444fd6c57d57f24
  • Akamai 検証/緩和スクリプト: https://github.com/akamai/cve-2026-98432-validation-mitigation

Akamai のスクリプトは以下の評価と安全性のアイデアを提供しました。その適用形式は採用されていません。我々のものがより厳格で 16.04 互換だからです。取り込んだ最も重要な知見を優先順に示します:

  1. 正確なパッケージ証拠を伴うパッチ状態の評価。 assess は実行中カーネルの正確なイメージパッケージを解決します(linux-image-$KVER、次に linux-image-unsigned-$KVER、次に /boot/vmlinuz-$KVER の所有者)。linux-image-generic のようなメタパッケージはコンテキストとしてのみ表示され、判定の証拠としては決して使用されません。changelog のヒットは強力だが誤りうる証拠です。changelog が欠けていても、修正済みリリース以上の独立して決定的なクリーンなアップストリームバージョンがあれば PATCHED になります。証拠のないベンダーカーネルは UNKNOWN になります。
  2. 真実の永続化結果。 自己インストールの失敗、ユニットの書き込み/有効化/起動の失敗、または systemd のないホストでは、ルールをアクティブに保ったまま enable は終了コード 4 で終了します。status は oneshot の実行時状態とは独立に永続化を評価し、enabled-runtime を非永続として拒否します。
  3. CIPSO/NetLabel の安全性。 検出は三値です: detected はデフォルトで拒否し、unknown は警告し、not_detected は続行します。netlabelctl の欠如は CIPSO が存在しないことを証明しません。
  4. 定義された使用可能バックエンドの契約。 check は検証済み使用可能、存在するが未検証、使用不可、不明を区別します。--backend nft は iptables が動作していても nft を評価します。
  5. 不確実性を伴うカバレッジシグナル。 Cilium インターフェース、macvlan/ipvlan リンク、XDP プログラムは、決定的なギャップではなく、潜在的なバイパスまたは不明として報告されます。Cilium のルーティングモードが重要であり、XDP_PASS は依然としてカーネルスタックに入ります。
  6. 正確なカウンタとレガシークリーンアップ。 カウンタは可能な限り正確な(-x)出力を使用し、以前のバージョンからのレガシーな filter/INPUT ルールは、raw の置き換えがロードされた後に報告され削除されます。

既存のインストールのアップグレード

ルールのマッチと状態ファイルの形式は後方互換です。先に disable する必要はありません。このバージョンで enable を再実行すると、ルールがその場で修復され、更新されたブートユニットがインストールされ、新しい永続化フィールドが記録されます。古い状態ファイルに persist= 行がない場合、status は欠落フィールドで失敗する代わりに、ユニットの状態から永続化を推測します。

把握しておくべき運用上の変更点:

  • enable は、ルールが有効であるものの再起動後の永続化に失敗した場合に終了コード 4 を返すようになりました。以前はその場合に 0 を返すことがありました。
  • check は、検証済みで使用可能なバックエンドの場合のみ 0 を返し、使用可能なバックエンドがない場合は 1、存在するが未検証の場合は 4、使用方法の誤りの場合は 2 を返すようになりました。
  • assess は新規で、以下に記載のとおり 0/1/3/4 を返します。
  • CIPSO が検出されたホストでは、--ignore-cipso を渡さない限り enable を拒否するようになりました。
  • 以前にユニットをインストールした場合は、新しいユニットの順序付けと ExecStart を適用するために enable を再実行してください。

作成日: 2026-10-30 (更新 2026-10-31) Ubuntu トラッカー確認日時: 2026-10-31 11:59 UTC (ページ最終更新 2026-10-30)。修正済みカーネルはまだ出荷されていません。 対象範囲: Linux サーバー、主に Ubuntu 16.04 (xenial)、22.04 (jammy)、24.04 (noble)、26.04 (resolute)、Docker/BTCPay ホストを含む。 成果物: このディレクトリ内の cve-2026-98432-mitigate.sh。 テスト済み環境: Ubuntu 16.04、22.04、24.04、26.04。


1. 要点

  • CVE-2026-98432 は Linux カーネルの IPv4 TCP ハンドシェイクにおける use-after-free であり、カーネル CNA により 9.8 Critical、Ubuntu により High と評価されています。
  • 受信した SYN が IP オプションを伴う場合、任意の IPv4 TCP リスナーから到達可能です。攻撃者は IP オプションの有無を制御できるため、通常のクライアントでもトリガーできます。
  • 本当の修正はパッチ適用済みカーネルです。 2026-10-31 11:59 UTC 時点で確認したところ、Ubuntu は 16.04、22.04、24.04、26.04 向けに修正済みカーネルをまだ公開していません。トラッカー (最終更新 2026-10-30) は、現在の 24.04 カーネル (6.8.0-149.149)、22.04 (5.15.0-203.213)、26.04 (7.0.0-43.43)、26.10 (7.3.0-10.10) について、依然として「vulnerable work in progress」と表示しています。
  • それまでの間、正しい暫定措置は、ファイアウォールで IP オプションを伴う受信 IPv4 TCP パケットをドロップすることです。参照されている両方の緩和策は、nftables を使ってまさにこれを行います。提供されるスクリプトは同じマッチに nftables または iptables のいずれかを使用できます。nftables を必須とせず、デフォルトでは何もインストールしません。
  • デフォルトの 3.13 カーネルを使用する Ubuntu 14.04 は影響を受けません。脆弱な request-socket パスは Linux 4.4 で導入されました。HWE カーネルを実行している Ubuntu 14.04 ホストは別途確認する必要があります (4.4 ベースの HWE カーネルは影響を受けます)。Ubuntu 16.04 / 4.4 は影響を受けます。 それ以降のすべての Ubuntu LTS が影響を受けます。
  • 16.04、22.04、24.04、26.04 ホストに今すぐフィルターを適用し、監視し、Ubuntu が修正済みとマークしたカーネルで再起動した後にのみ削除してください。
  • 16.04 は標準サポートおよび ESM を終了しています。Ubuntu Pro Legacy Support の対象でない限り、カーネルの修正が提供されることはないかもしれません。フィルターを維持するか、ホストをアップグレードする計画を立ててください。

2. 脆弱性とは何か

Ubuntu の説明より:

  • tcp_v4_syn_recv_sock() は ireq->ireq_opt の所有権を子ソケット(newinet->inet_opt)に コピーせずに 移譲します。
  • 別の CPU が同じ request ソケットに対する再送 SYN を処理し、tcp_check_req() から SYNACK を送信する可能性があります。tcp_v4_send_synack() と inet_csk_route_req() は rcu_read_lock() の下でのみ ireq->ireq_opt を読み取ります。
  • request ソケットがリスナーロックなしで処理されるため(コミット 079096f103fa)、SYNACK がまだ構築されている間に子ソケットが解放される可能性があります。TCP の子ソケットには SOCK_RCU_FREE がなく、inet_sock_destruct() は inet_opt を単純な kfree() で解放するため、ip_options_build() における use-after-free が発生します。
  • request ソケットのマイグレーション(net.ipv4.tcp_migrate_req=1、または BPF_SK_REUSEPORT_SELECT_OR_MIGRATE プログラム)を伴う第 2 の変種も存在します。inet_reqsk_clone() は ireq_opt を共有し、tcp_v4_reqsk_destructor() も単純な kfree() を使用します。
  • 修正は、inet_sock_destruct() と tcp_v4_reqsk_destructor() で kfree_rcu() を使用することです。
  • IPv6 は tcp_v6_syn_recv_sock() がオプションを複製するため、最初の問題の影響を受けません。IPv6 のマイグレーション/CALIPSO の問題は別のパッチで対処されています。

実際の露出: IPv4 TCP サービスを実行しているホスト(SSH、Web、Docker で公開されたポート、BTCPay、Lightning など)はすべて到達可能です。トリガーは IP ヘッダ長が 5 より大きい SYN(つまり IP オプションが存在するもの)です。通常の TCP オプション(MSS、ウィンドウスケール、SACK、タイムスタンプ)は IP オプションではなく、影響を受けません。


3. 影響を受けるカーネルと Ubuntu のステータス

3.1 Ubuntu トラッカーのスナップショット(2026-10-31 11:59 UTC に確認、ページ最終更新 2026-10-30)

影響を受ける Ubuntu リリースのいずれに対しても、修正済みカーネルは公開されていません。 以下のステータスは前回の確認から変わっていません。

リリースカーネル系列Ubuntu ステータス
26.10 stonking7.3脆弱、修正作業中 7.3.0-10.10
26.04 LTS resolute7.0脆弱、修正作業中 7.0.0-43.43
24.04 LTS noble6.8脆弱、修正作業中 6.8.0-149.149
24.04 HWE 6.17 / 7.06.17 / 7.0脆弱
22.04 LTS jammy5.15脆弱、修正作業中 5.15.0-203.213
22.04 HWE 6.86.8脆弱、修正作業中 6.8.0-149.149~22.04.1
20.04 LTS focal5.4脆弱
18.04 LTS bionic4.15脆弱
16.04 LTS xenial4.4脆弱
14.04 LTS trusty3.13(デフォルト)影響なし、HWE カーネルは影響を受ける可能性あり

クラウドおよび派生カーネル(aws、azure、gcp、gke、oracle、ibm、nvidia、lowlatency など)も脆弱または修正作業中としてリストされています。実行している特定のカーネルパッケージを確認してください。トラッカーにはそれぞれが記載されています。

3.2 影響を受けない古いカーネル

ツールをダウンロード