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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE_2026_31694 — CVE-2026-31694用のパッシブLinuxホスト脆弱性スキャナ: 実行中のカーネル、FUSE設定、パッケージメタデータ、パッチ適用の証跡をチェックし、カスタマイズされた緩和策ガイダンスを生成します。 | Kitploit
ツール/GitHubGitHub/zenzue/cve_2026_31694
防御ツール脆弱性スキャナー脆弱性分析構成監査
GitHubzenzue/cve_2026_31694

CVE_2026_31694

CVE-2026-31694用のパッシブLinuxホスト脆弱性スキャナ: 実行中のカーネル、FUSE設定、パッケージメタデータ、パッチ適用の証跡をチェックし、カスタマイズされた緩和策ガイダンスを生成します。

リポジトリを見る
212ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-31694 パッシブスキャナ

CVE-2026-31694(LinuxカーネルのFUSE readdirキャッシュにおける領域外書き込み)向けのパッシブなLinuxホスト評価ツールです。

このスキャナは、実行中のカーネル、FUSEの露出状況、ローカルのパッケージメタデータ、カーネルソースの証跡、実行環境、OSファミリーを評価します。ホストが影響を受ける可能性がある場合、検出されたディストリビューションに合わせた緩和策ガイドを生成します。

作者: Aung Myat Thu [w01f]


目次

  • 概要
  • 脆弱性概要
  • セキュリティモデル
  • 機能
  • 要件
  • インストール
  • 使用方法
  • コマンドラインオプション
  • 評価ワークフロー
  • 判定
  • 終了コード
  • 検出ソース
  • 対応ディストリビューション
  • 緩和策の生成
  • コンテナおよびWSLでの動作
  • レポート形式
  • 自動化と統合
  • 運用ガイダンス
  • 制限事項
  • トラブルシューティング
  • 参考情報

概要

cve_2026_31694_scanner.py は、ローカルで動作する非エクスプロイト型の脆弱性評価ユーティリティです。

影響を受けるFUSEコードパスを実行して脆弱性を確認するものではありません。代わりに、複数のパッシブ指標を組み合わせます。

  • 実行中のカーネルリリース;
  • 上流の修正済みバージョンのベースライン;
  • 現在のメモリページサイズ;
  • CONFIG_FUSE_FS カーネル設定;
  • 登録済みのFUSEファイルシステムタイプ;
  • /dev/fuse の存在と現在のユーザーのアクセス権;
  • FUSEマウントヘルパーの有無;
  • アクティブなFUSEマウント;
  • インストール済みカーネルソースの検査;
  • カーネルパッケージの所有関係;
  • ローカルのパッケージ変更履歴(changelog)の証跡;
  • キャッシュされたパッケージ更新メタデータ;
  • インストール済みカーネルと実行中カーネルの比較;
  • ディストリビューションとパッケージマネージャーの検出;
  • コンテナ、仮想マシン、WSLの検出。

結果はエクスプロイトに基づく証明ではなく、曝露評価です。


脆弱性概要

CVE-2026-31694 は、LinuxカーネルのFUSE readdirキャッシュに影響を与えます。

脆弱なロジックは、サーバーが制御する名前長からディレクトリエントリのシリアライズ後のサイズを計算し、そのレコードを単一のページキャッシュページにコピーします。名前長が 4095 のディレクトリエントリは、シリアライズ後のサイズが 4120 バイトになる可能性があります。

4096 バイトのページを使用するシステムでは、そのレコードは1ページを 24 バイト超えます。

上流の修正では、キャッシュコピーが行われる前に、単一のページ内に収まらないディレクトリレコードを拒否します。

影響を受けるコンポーネント```text

fs/fuse/readdir.c fuse_add_dirent_to_cache()

### スキャナのベースラインデータ

スキャナには、以下の上流の安定版修正ベースラインが含まれています:

| カーネルシリーズ | 修正済みベースライン |
|---|---:|
| 5.10 | 5.10.258 |
| 5.15 | 5.15.209 |
| 6.1 | 6.1.175 |
| 6.6 | 6.6.136 |
| 6.12 | 6.12.84 |
| 6.18 | 6.18.25 |
| 7.0 | 7.0.2 |
| Mainline | 7.1 以降 |

これらのバージョンは評価入力の 1 つとして使用されます。ディストリビューションベンダーが修正をバックポートしつつ、より古い上流バージョン番号を維持する場合があるため、これらは唯一の情報源とは見なされません。

---

## セキュリティモデル

スキャナは、脆弱な操作を呼び出さないように設計されています。

### スキャナが行わないこと

- FUSE ファイルシステムをマウントしません。
- `/dev/fuse` を開いたり通信したりしません。
- FUSE サーバを起動しません。
- 細工されたディレクトリレコードを送信しません。
- ページ配置テスト用のメモリを割り当てません。
- カーネルアロケータを操作しません。
- `/etc/passwd` を変更しません。
- カーネル設定を変更しません。
- カーネルモジュールをロードまたはアンロードしません。
- `/dev/fuse` のパーミッションを変更しません。
- パッケージをインストールまたは削除しません。
- システムを再起動しません。
- 権限昇格を試みません。

### スキャナが行う場合があること

- `/proc`、`/boot`、`/lib/modules`、`/usr/lib/modules`、`/usr/src` 配下のファイルやパッケージメタデータディレクトリを読み取ります。
- 制限付きの読み取り専用パッケージクエリを実行します。
- アクティブなマウントとファイルシステム登録を検査します。
- `--output` が明示的に指定された場合のみレポートを書き込みます。
- 管理者が確認するための緩和策コマンドを出力します。

緩和策コマンドはドキュメント出力です。自動的に実行されることはありません。

---

## 機能

### ホストとカーネルの識別

- `platform.release()` を読み取り、上流スタイルのカーネルバージョンを解析します。
- `/etc/os-release` または `/usr/lib/os-release` を読み取ります。
- CPU アーキテクチャとメモリページサイズを検出します。
- スキャン対象のカーネルが現在のオペレーティングシステムに属しているかどうかを識別します。

### FUSE エクスポージャ評価

- 利用可能なカーネル設定ソースから `CONFIG_FUSE_FS` を読み取ります。
- 組み込みの FUSE サポートとロード可能モジュール設定を検出します。
- `/proc/filesystems` を読み取ります。
- `/dev/fuse` のメタデータと現在のユーザーの読み取り/書き込みアクセスを確認します。
- `fusermount3` または `fusermount` を特定します。
- `/proc/self/mountinfo` からアクティブな FUSE マウントを解析します。

### パッチの証拠

- 実行中のバージョンを上流の修正済みベースラインと比較します。
- インストール済みのカーネルソース内で oversized-record ガードを検索します。
- ローカルの RPM または Debian パッケージのチェンジログで以下を確認します:
  - `CVE-2026-31694`;
  - 上流パッチのタイトル。

### パッケージと再起動状態

- 実行中のカーネルを所有するパッケージを特定しようとします。
- リポジトリを更新せずにローカルのパッケージマネージャメタデータを照会します。
- ホスト環境が信頼できる場合に、より新しいインストール済みカーネルを検出します。
- 該当する場合、`/var/run/reboot-required` を確認します。

### 環境認識

- Docker 互換コンテナを検出します。
- Podman 互換コンテナを検出します。
- コンテナ関連の cgroups を検出します。
- WSL を検出します。
- 利用可能な場合は `systemd-detect-virt` を使用して仮想マシンを検出します。

### レポート

- 人間が読み取れるテキスト出力。
- 機械可読な JSON 出力。
- Markdown レポート出力。
- 緩和策のみの出力。
- 任意のファイル出力。
- 意味のあるプロセス終了コード。

---

## 要件

### 必須

- カーネル評価のための Linux。
- Python 3.9 以降。
- 通常のシステムメタデータへの読み取りアクセス。

スキャナは Python 標準ライブラリのみを使用します。

### オプションのコマンド

次のツールが存在する場合、追加の証拠が収集されます:

| Tool | Purpose |
|---|---|
| `dpkg-query` | Debian/Ubuntu カーネルパッケージの所有者とチェンジログの発見 |
| `rpm` | Fedora/RHEL/SUSE パッケージの所有者とチェンジログの検査 |
| `pacman` | Arch 系カーネルパッケージと更新メタデータ |
| `apt` | Debian 系のキャッシュ済み更新クエリ |
| `dnf` or `dnf5` | Fedora/RHEL のキャッシュ済み更新クエリ |
| `zypper` | SUSE のキャッシュ済み CVE パッチクエリ |
| `apk` | Alpine のパッケージ/更新クエリ |
| `systemd-detect-virt` | コンテナと仮想マシンの検出 |

通常のスキャンには root 権限は必要ありません。

システム固有のファイルパーミッションにより、一部の証拠は非特権アカウントでは利用できない場合があります。

---

## インストール

スキャナを作業ディレクトリに配置します:```bash
chmod +x cve_2026_31694_scanner.py

直接実行:```bash ./cve_2026_31694_scanner.py

または Python で呼び出します:```bash
python3 cve_2026_31694_scanner.py

Pythonパッケージのインストールは不要です。


使い方

標準評価```bash

python3 cve_2026_31694_scanner.py

### JSON出力```bash
python3 cve_2026_31694_scanner.py --format json

以下の互換エイリアスも同じ形式を生成します:```bash python3 cve_2026_31694_scanner.py --json

### Markdown レポート```bash
python3 cve_2026_31694_scanner.py --format markdown

レポートを保存```bash

python3 cve_2026_31694_scanner.py
--format markdown
--output cve-2026-31694-report.md

### 修復ガイダンスのみを出力```bash
python3 cve_2026_31694_scanner.py --mitigation-only

パッケージ更新の問い合わせをスキップ```bash

python3 cve_2026_31694_scanner.py --no-package-query

### 報告後は常に成功を返す```bash
python3 cve_2026_31694_scanner.py --no-exit-status

このオプションは、脆弱性ステータスによってオーケストレーションジョブが失敗しないようにしながらレポートを収集する場合に便利です。


コマンドラインオプション

オプション説明
--format text人間が読めるターミナル出力。デフォルトです。
--format jsonJSON 形式の完全な構造化レポート。
--format markdown技術的な Markdown レポート。
--json--format json のエイリアス。
--output PATHレポートを標準出力ではなくファイルに書き込みます。
--mitigation-only生成された緩和策セクションのみを返します。
--no-package-queryローカルのパッケージマネージャーの更新クエリをスキップします。
--no-exit-status出力生成後、常にステータス 0 で終了します。
-h, --helpコマンドのヘルプを表示します。

評価ワークフロー

スキャナーは以下の順序で証拠を評価します。

1. オペレーティングシステムと環境の検出

スキャナーは以下を判定します:

  • オペレーティングシステムが Linux であるかどうか;
  • ディストリビューション ID とファミリー;
  • パッケージマネージャー;
  • プロセスが次のいずれで実行されているか:
    • 通常のホスト;
    • 仮想マシン;
    • コンテナ;
    • WSL.

環境検出により、パッケージおよび再起動データの解釈が変わります。

例えば、コンテナはホストのカーネルを確認できますが、通常はコンテナのファイルシステムからホストのカーネルパッケージを特定することはできません。

2. FUSE 設定

スキャナーは、実行中のカーネル設定を以下から探します:```text /proc/config.gz /boot/config-$(uname -r) /lib/modules/$(uname -r)/build/.config /usr/lib/modules/$(uname -r)/build/.config

以下を評価します:```text
CONFIG_FUSE_FS=y
CONFIG_FUSE_FS=m
CONFIG_FUSE_FS is not set

解釈:

値意味
yFUSE はカーネルに組み込まれています。モジュールのブラックリスト登録では無効化できません。
mFUSE はロード可能なモジュールとして利用できます。
nFUSE は検出された設定では無効になっています。
unknown読み取り可能な設定ソースがありませんでした。

3. 実行時の露出

スキャナーは以下を確認します:```text /proc/filesystems /dev/fuse PATH for fusermount3 or fusermount /proc/self/mountinfo

`/dev/fuse` または `fusermount3` が存在しない場合、現在の環境からの即時的な利用可能性は低下しますが、カーネルがパッチ適用済みであることを証明するものではありません。

### 4. ページサイズの幾何学的性質

文書化された過大レコードは `4120` バイトです。

ホストのページサイズが少なくとも `4120` バイトである場合、文書化されたレコードはページ境界をまたぎません。スキャナは、文書化されたページ幾何学的性質によってシステムが露出していないと報告する場合があります。

この結論は、文書化されたレコードと評価された実装の動作にのみ適用されます。これは、より大きなページのシステムで FUSE のメモリ安全性の問題がすべて不可能であるという一般的な声明ではありません。

### 5. インストール済みソースの検査

インストール済みソースが利用可能な場合、スキャナは以下を検索します。```text
fs/fuse/readdir.c

影響を受ける関数と、reclen > PAGE_SIZE を拒否するのに相当するガードを探します。

直接のソース証拠は、バージョン比較よりも信頼性が高いです。

結果が信頼できるものとなるには、検査対象のソースが実行中のカーネルに対応している必要があります。/usr/src 配下のディストリビューションソースツリーは、インストールされている別のカーネルを表している可能性があります。

6. カーネルパッケージの証拠

スキャナは、検出されたディストリビューションのパッケージデータベースを使用して、実行中のカーネルイメージをその所有者パッケージにマッピングしようとします。

考えられるメカニズムは次のとおりです:```text dpkg-query -S rpm -qf pacman -Qo apk info -W

パッケージが特定された場合、ローカルの変更ログメタデータを調べて、CVE ID またはパッチタイトルを確認できる場合があります。

変更ログの一致がないことは、脆弱性の証明にはなりません。ベンダーは、ローカルにインストールされた変更ログに個々の CVE 参照を常に含めるとは限らないためです。

### 7. アップストリームバージョンの比較

解析されたカーネルバージョンは、スキャナの固定ベースラインテーブルと比較されます。

バージョン比較は、以下の理由からヒューリスティックな結果を生成します:
ツールをダウンロード