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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cfDr — Ansibleプレイブック:CVE-2026-31431(Copy Fail)の検出と修復用 - Linuxカーネルのローカル権限昇格の脆弱性 | Kitploit
ツール/GitHubGitHub/parmstro/cfdr
脆弱性スキャナー構成監査DevSecOps
GitHubparmstro/cfdr

cfDr

Ansibleプレイブック:CVE-2026-31431(Copy Fail)の検出と修復用 - Linuxカーネルのローカル権限昇格の脆弱性

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

人気

すべて見る →

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

すべてのツールを探索

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

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

cfDr - コピーフェイルドクター

Copy Fail Detection and Remediation

CVE-2026-31431(コピーフェイル)を検出および修復するためのAnsibleロールおよびプレイブックスイートです。これは、Linuxカーネルのalgif_aeadモジュールにおける重大なローカル権限昇格の脆弱性です。

リポジトリ

🔗 GitHub: https://github.com/parmstro/cfDr

cfDrという名前は「コピーフェイルドクター」をもじったもので、CVE-2026-31431に対する信頼できる治療薬です。


目次

  1. CVE-2026-31431について
  2. 利用可能な修復策
  3. 検出方法
  4. cfDrの仕組み
  5. システム暗号化への影響
  6. 推奨ワークフロー
  7. 追加リソース
  8. パッチの監視
  9. クイックスタート
  10. 高度な設定

CVE-2026-31431について

コピーフェイルとは?

CVE-2026-31431(CVSS 7.8)は、2026年に発見されたLinuxカーネルのAEADソケットインターフェース(AF_ALG)における論理的な欠陥です。この脆弱性により、権限のないローカルユーザーが数秒でrootに権限を昇格できます。

技術的詳細

  • 影響を受けるコンポーネント: algif_aeadカーネルモジュール(AF_ALG暗号インターフェース)
  • 脆弱性の種類: コピー操作処理における論理的な欠陥
  • 攻撃ベクトル: ローカル
  • 必要な権限: なし(権限のないユーザー)
  • ユーザー操作: なし
  • 影響: システム全体の侵害(rootアクセス)

影響を受けるシステム

カーネルバージョン: Linuxカーネル 4.10以上(2017年リリース)

影響を受けるディストリビューション:

  • Red Hat Enterprise Linux 7、8、9
  • CentOS 7、8、9(およびStream)
  • Fedora(現在サポートされているすべてのバージョン)
  • Ubuntu 17.04以降
  • Debian 9(Stretch)以降
  • SUSE Linux Enterprise 12、15

注記: カーネル4.10以降を搭載したLinuxディストリビューションはすべて潜在的に脆弱です。

なぜこれが重要なのか

この脆弱性は、以下の理由から特に危険です:

  1. 権限が不要 - どのユーザーアカウントでも悪用可能
  2. 即時の権限昇格 - 数秒でrootアクセス
  3. 広範囲への影響 - 7年以上のカーネルリリースに影響
  4. ローカル実行 - リモートアクセスは不要ですが、初期足場を確保した攻撃者は即座に権限昇格可能
  5. 活発な悪用 - 公開エクスプロイトが存在

現実世界での影響

攻撃者が何らかの形でローカルアクセス(SSH、Webシェル、コンテナエスケープなど)を獲得すると、以下のことが可能になります:

  • システムの完全な制御を獲得
  • 永続的なバックドアのインストール
  • 機密データへのアクセス
  • ネットワーク上の他のシステムへの横展開
  • ランサムウェアやクリプトマイナーの展開

利用可能な修復策

ベンダー提供のカーネルパッチを待つ間、いくつかの緩和策が利用可能です。cfDrはこれらすべてを実装し、システム構成に基づいてインテリジェントな推奨を行います。

保護レベルの理解

すべての修復策が同等ではありません。知っておくべきことは以下のとおりです:

方法rootによる回避は可能か?適用範囲Enterprise Linuxサポート
モジュールブラックリスト✅ はい(insmod経由)modprobeのロードを防止すべてのバージョン
SELinuxポリシー❌ いいえ(LSMレイヤー)設定されたドメインのみすべてのバージョン(デフォルト)
systemd seccomp❌ いいえ(システムコールフィルター)設定されたサービスのみすべてのバージョン
eBPF LSM❌ いいえ(LSMレイヤー)システム全体(設定されている場合)RHEL 9+、Fedora 34+

推奨アプローチ:多層防御

cfDrのデフォルト推奨:フラグ3(モジュールブラックリスト + SELinux)

これにより、2つの独立した保護レイヤーが提供されます:``` ┌─────────────────────────────────────────────────┐ │ Layer 1: Module Blacklist │ │ • Prevents modprobe algif_aead │ │ • Persists across reboots │ │ • CAN be bypassed by malicious root (insmod) │ ├─────────────────────────────────────────────────┤ │ Layer 2: SELinux Policy │ │ • Blocks AF_ALG socket() at syscall level │ │ • Works even if module is loaded │ │ • CANNOT be bypassed from userspace │ │ • Covers user_t, unconfined_t (majority cases) │ └─────────────────────────────────────────────────┘

Result: If either layer fails, the other still protects

### モジュールブラックリストだけでは不十分な理由

ルートアクセス権を持つ執念深い攻撃者は、モジュールのブラックリストを回避できます。```bash
# Module blacklist DOES NOT prevent:
insmod /lib/modules/$(uname -r)/kernel/crypto/algif_aead.ko.xz

ただし、これは許容されます。その理由は以下の通りです:

  1. この脆弱性は権限昇格(非特権 → root)を標的としています
  2. 攻撃者がすでにroot権限を持っている場合、モジュールをロードせずに直接悪用できます
  3. モジュールブラックリストは主要な攻撃ベクトルを防御します

完全な防御戦略

完全かつ迂回不可能な防御には、以下が必要です:

モジュールブラックリスト + 以下の少なくとも1つ:

  • SELinuxポリシー(Enterprise Linuxに推奨)
  • systemd seccompフィルタ(サービス単位の防御)
  • eBPF LSMプログラム(RHEL 9+のみ、システム全体)

緩和フラグのリファレンス

cfDrはビット単位のフラグを使用して複数の緩和策を有効にします:

フラグ値有効化される緩和策ユースケース
1モジュールブラックリストのみ最小限の防御、SELinux非搭載システム
2SELinuxのみSELinux専用環境
3モジュールブラックリスト + SELinux推奨デフォルト
5モジュールブラックリスト + seccompSELinux非搭載かつサービス強化あり
7モジュールブラックリスト + SELinux + seccomp強化された防御
15すべての緩和策最大限の防御(RHEL 9+のみ)

フラグの計算方法:1(ブラックリスト)+ 2(SELinux)+ 4(seccomp)+ 8(eBPF)= 合計

認識しておくべき防御のギャップ

SELinuxの防御:

  • ポリシーで指定されたドメインのみをカバー:user_t、unconfined_t、httpd_t、postgresql_t、mysqld_t
  • 他のSELinuxドメインで実行されるプロセスは防御されない場合があります
  • 実際には、user_tとunconfined_tが攻撃シナリオの大部分をカバーします

systemd seccompの防御:

  • 明示的に設定されたサービスのみを防御します
  • デフォルト設定でカバーされる対象:httpd、nginx、postgresql、mariadb、redis、memcached
  • これらのサービス以外のプロセスは防御されません

eBPF LSMの防御:

  • カーネル5.7+が必要(RHEL 9、Fedora 34+)
  • 正しく実装するには専門知識が必要です
  • 適切に設定すれば、包括的なシステム全体の防御を提供できます

検出方法論

cfDrが脆弱性を検出する仕組み

cfDrは複数の次元にわたって包括的な評価を実行します:

1. カーネルバージョンの確認```bash

uname -r

- カーネルバージョンが4.10以上かどうかを判定(脆弱な範囲)
- カーネルリリースとディストリビューションを特定

#### 2. モジュールの利用可能性チェック```bash
modinfo algif_aead
  • カーネル内に algif_aead モジュールが存在するか検証します
  • モジュールの場所とメタデータを確認します

3. モジュールのロード状態```bash

lsmod | grep algif_aead

- モジュールが現在ロードされているかを判定
- **重要**: ロード済みモジュール = 積極的に悪用可能

#### 4. アクティブソケット検出```bash
lsof -U | grep AF_ALG
  • アクティブなAF_ALGソケットを識別します
  • 潜在的なアクティブな悪用を示します

5. 既存の緩和策の検出

モジュールブラックリスト:```bash grep -E "blacklist algif_aead|install algif_aead" /etc/modprobe.d/*.conf

**SELinux ポリシー**:```bash
semodule -l | grep cve_2026_31431_af_alg_deny

systemd seccomp:```bash systemctl show | grep RestrictAddressFamilies

#### 6. カテゴリ別ステータス判定

cfDrは各ホストを以下のいずれかの状態に分類します:

| ステータス | 条件 | 必要な対応 |
|--------|-----------|-----------------|
| **脆弱 - モジュール読み込み済み** | カーネル >= 4.10、モジュールが存在し読み込み済み | **即時対応** - 積極的に悪用可能 |
| **脆弱 - モジュール存在** | カーネル >= 4.10、モジュールが存在するが未読み込み | **高優先** - 読み込み・悪用が可能 |
| **緩和済み - モジュールがブラックリスト登録** | ブラックリスト検出 | **低優先** - 監視し、追加の防御層を適用 |
| **保護済み - 多層防御** | ブラックリスト + SELinux/seccomp/eBPF | **不要** - 完全に保護されている |
| **非脆弱 - 旧カーネル** | カーネル < 4.10 | **不要** - 脆弱性の影響範囲外 |
| **非脆弱 - モジュールなし** | algif_aeadモジュールがカーネルに存在しない | **不要** - モジュールが利用不可 |

### 評価出力

各ホストには以下が提供されます:
1. **コンソール出力**: 1行の簡潔なステータス
2. **詳細ファイル**: `/root/cve-2026-31431-assessment-<hostname>.txt`
3. **JSONレポート**: `/tmp/cve-2026-31431-<hostname>.json`

簡潔な出力例:```
webserver1.example.com: VULNERABLE - Module exists and can be loaded
dbserver2.example.com: PROTECTED - Defense-in-depth (Module Blacklist + SELinux)
appserver3.example.com: NOT VULNERABLE - Module not available

cfDrの仕組み

アーキテクチャ

cfDrは、複数のプレイブックエントリポイントを持つ最新のAnsibleロールとして構築されています。``` cfDr/ ├── roles/ │ └── cve_2026_31431/ # Main role │ ├── tasks/ │ │ ├── main.yml # Role orchestration │ │ ├── assessment.yml # Vulnerability detection │ │ ├── remediation_module_blacklist.yml │ │ ├── remediation_selinux.yml │ │ ├── remediation_seccomp.yml │ │ ├── remediation_ebpf.yml │ │ ├── reporting.yml # Status reporting │ │ └── inventory_update.yml # Inventory generation │ ├── templates/ # Config file templates │ ├── defaults/ # Default variables │ └── handlers/ # Service restarts, etc. ├── quickstart.yml # Simplest usage ├── sample_playbook.yml # Multiple examples └── cve_2026_31431_playbook.yml # Full-featured playbook

### 実行フロー
ツールをダウンロード