
LinuxカーネルのIPv4 TCP use-after-free(CVSS 9.8)への露出を評価するための、ローカルカーネルバージョンチェッカー、リモートMPTCP機能プローブ、および対話型スキャン・アンド・プローブCLI。
CVE-2026-98432 への露出を検出するためのツール — これは Linux カーネル IPv4 TCP の use-after-free (CVSS 9.8) であり、カーネル 4.4 から修正前の安定版ブランチに影響します。
| ファイル | 目的 | 必要なもの |
|---|---|---|
check-cve-2026-98432.sh | ローカルカーネルバージョンチェック — 修正済み/脆弱性ありを確認 | シェルアクセス (SSH/コンソール) |
probe-mptcp.py | リモート MPTCP 機能プローブ — 実証されたエクスプロイトベクターを検出 | Python 3.9+、プローブ実行ホスト上の Linux カーネル ≥ 5.6 |
scan-and-probe.sh | nmap のポート検出を MPTCP プローブに連鎖 | nmap + 上記 |
chmod +x check-cve-2026-98432.sh
./check-cve-2026-98432.sh
終了コード: 0 修正済み、1 脆弱性あり、2 再起動または手動確認が必要。
単一ホスト、既知のポート:
python3 probe-mptcp.py <HOST> <PORT> [PORT ...]
python3 probe-mptcp.py 192.168.1.1 22 443 5060
単一ホスト、nmap で開いているすべての TCP ポートを自動検出:
python3 probe-mptcp.py <HOST> $(nmap -Pn --open -p- <HOST> -oG - | grep -oP '\d+/open/tcp' | cut -d/ -f1 | tr '\n' ' ')
両方の
<HOST>をターゲット IP に置き換えてください。
複数ホスト:
chmod +x scan-and-probe.sh
./scan-and-probe.sh <HOST1> <HOST2> <HOST3>
uname -r を安定版ブランチごとの最初の修正バージョンと比較します。net.mptcp.enabled とアクティブな MPTCP リスナー) を報告します。標準的な MPTCP 要求 TCP 接続を開き、サーバーが MPTCP をネゴシエートしたか、プレーン TCP にフォールバックしたかをチェックします。
PLAIN-TCP — サーバーが MPTCP をネゴシエートしなかった。実証された root エクスプロイトベクターは存在しない。MPTCP-ACTIVE — サーバーが MPTCP をネゴシエートした。露出ベクターが存在する。CLOSED — ポートがフィルタリングされているか拒否された。安全: IP オプションなし、再送/レースなし、エクスプロイトトリガーなし。MPTCP 機能フラグを付けた通常の TCP ハンドシェイクです。
制限: PLAIN-TCP は修正済みを意味しません。実証されたベクターが閉じていることを意味します。基盤となるレースはプレーン IPv4 TCP に存在します — 修正を確認できるのはカーネルバージョンのみです。
| ブランチ | 最初の修正版 |
|---|---|
| 5.10.x | 5.10.272 |
| 5.15.x | 5.15.223 |
| 6.1.x | 6.1.190 |
| 6.6.x | 6.6.159 |
| 6.12.x | 6.12.113 |
| 6.18.x | 6.18.56 |
| 7.2.x | 7.2.10 |
| 7.3+ | リリース時に修正済み |
sysctl -w net.mptcp.enabled=0
echo 'net.mptcp.enabled=0' > /etc/sysctl.d/90-disable-mptcp.conf
sysctl --system
これによりカーネル全体で MPTCP が無効化され、実証された root エクスプロイト経路が閉じられます。再起動は不要で、再起動後も永続します。ほとんどのサービスは MPTCP を使用しないため、機能への影響はありません。
MIT