Copy Fail Detection and Remediation
CVE-2026-31431(コピーフェイル)を検出および修復するためのAnsibleロールおよびプレイブックスイートです。これは、Linuxカーネルのalgif_aeadモジュールにおける重大なローカル権限昇格の脆弱性です。
🔗 GitHub: https://github.com/parmstro/cfDr
cfDrという名前は「コピーフェイルドクター」をもじったもので、CVE-2026-31431に対する信頼できる治療薬です。
CVE-2026-31431(CVSS 7.8)は、2026年に発見されたLinuxカーネルのAEADソケットインターフェース(AF_ALG)における論理的な欠陥です。この脆弱性により、権限のないローカルユーザーが数秒でrootに権限を昇格できます。
algif_aeadカーネルモジュール(AF_ALG暗号インターフェース)カーネルバージョン: Linuxカーネル 4.10以上(2017年リリース)
影響を受けるディストリビューション:
注記: カーネル4.10以降を搭載したLinuxディストリビューションはすべて潜在的に脆弱です。
この脆弱性は、以下の理由から特に危険です:
攻撃者が何らかの形でローカルアクセス(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つ:
cfDrはビット単位のフラグを使用して複数の緩和策を有効にします:
| フラグ値 | 有効化される緩和策 | ユースケース |
|---|---|---|
| 1 | モジュールブラックリストのみ | 最小限の防御、SELinux非搭載システム |
| 2 | SELinuxのみ | SELinux専用環境 |
| 3 | モジュールブラックリスト + SELinux | 推奨デフォルト |
| 5 | モジュールブラックリスト + seccomp | SELinux非搭載かつサービス強化あり |
| 7 | モジュールブラックリスト + SELinux + seccomp | 強化された防御 |
| 15 | すべての緩和策 | 最大限の防御(RHEL 9+のみ) |
フラグの計算方法:1(ブラックリスト)+ 2(SELinux)+ 4(seccomp)+ 8(eBPF)= 合計
SELinuxの防御:
user_t、unconfined_t、httpd_t、postgresql_t、mysqld_tuser_tとunconfined_tが攻撃シナリオの大部分をカバーしますsystemd seccompの防御:
httpd、nginx、postgresql、mariadb、redis、memcachedeBPF LSMの防御:
cfDrは複数の次元にわたって包括的な評価を実行します:
uname -r
- カーネルバージョンが4.10以上かどうかを判定(脆弱な範囲)
- カーネルリリースとディストリビューションを特定
#### 2. モジュールの利用可能性チェック```bash
modinfo algif_aead
algif_aead モジュールが存在するか検証しますlsmod | grep algif_aead
- モジュールが現在ロードされているかを判定
- **重要**: ロード済みモジュール = 積極的に悪用可能
#### 4. アクティブソケット検出```bash
lsof -U | grep AF_ALG
モジュールブラックリスト:```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は、複数のプレイブックエントリポイントを持つ最新の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
### 実行フロー
#### 評価モード(デフォルト)```
1. Pre-flight checks
↓
2. Gather system facts
↓
3. Detect kernel version
↓
4. Check module availability
↓
5. Check current load status
↓
6. Check existing mitigations
↓
7. Determine vulnerability status
↓
8. Flag vulnerable hosts
↓
9. Generate reports
↓
10. Create summary
↓
11. [Optional] Generate inventory
apply_remediation=true)```1-8. [Same as Assessment Mode] ↓ 9. Apply Module Blacklist (if flag 1) • Unload module if loaded • Create blacklist config • Update initramfs/initrd • Verify blacklist works ↓ 10. Apply SELinux Policy (if flag 2) • Install policy packages • Compile policy module • Install policy • Verify policy active ↓ 11. Apply systemd seccomp (if flag 4) • Create drop-in files • Reload systemd • Restart services • Verify filters active ↓ 12. Apply eBPF LSM (if flag 8) • Compile eBPF program • Load into kernel • Verify program attached ↓ 13. Re-assess protection status ↓ 14. Generate reports ↓ 15. Create summary
### 修復の詳細
#### モジュールブラックリスト(フラグ1)
**機能**:
1. 現在ロードされている場合、`algif_aead` モジュールをアンロードします(`rmmod algif_aead`)
2. `/etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf` を作成します: ```
blacklist algif_aead
install algif_aead /bin/true
update-initramfs -udracut -fmodprobeでモジュールを読み込めないことを検証します保護: 即時、再起動不要 永続性: 再起動やカーネル更新後も維持
機能:
policycoreutilspolicycoreutils-python-utilsselinux-policy-develcheckpolicysemodule -i cve_2026_31431_af_alg_deny.pp保護対象ドメイン(デフォルト):
user_t - 通常ユーザープロセスunconfined_t - 非制限プロセスhttpd_t - Apache Webサーバーpostgresql_t - PostgreSQLデータベースmysqld_t - MySQL/MariaDBデータベース保護: LSMレイヤーでブロック、バイパス不可 永続性: ポリシーは再起動後も維持
機能:
/etc/systemd/system/<service>.service.d/90-cve-2026-31431-block-af-alg.confRestrictAddressFamilies=~AF_ALGディレクティブを追加保護対象サービス(デフォルト):
httpd, nginx - Webサーバーpostgresql, mariadb - データベースredis, memcached - キャッシュサーバー保護: サービスごとにシステムコールレベルでソケット作成をブロック 永続性: 再起動やサービス更新後も維持
機能:
要件:
CONFIG_BPF_LSM=yが有効なカーネル5.7以上保護: 動的でプログラム可能なシステム全体のポリシー 永続性: 起動時に再ロードするシステムサービスが必要
cfDrは、脆弱なホストのみを含むすぐに使用できるインベントリファイルを生成できます:
生成されるファイル:``` inventory_output/ ├── vulnerable_hosts.yml # YAML inventory ├── vulnerable_hosts.ini # INI inventory ├── group_vars_vulnerable_hosts.yml # Group variables └── host_vars/ ├── host1.yml # Per-host details └── host2.yml
**含まれるもの**:
- 脆弱性評価結果
- 推奨される緩和フラグ(ホストごとに計算)
- システム詳細(カーネルバージョン、SELinuxステータス)
- 適用可能な修復設定
**インテリジェントな推奨事項**:
- SELinuxが有効な場合はフラグ3(モジュールブラックリスト + SELinux)
- SELinuxが利用できない場合はフラグ1(モジュールブラックリストのみ)
- 生成された `host_vars` を介してホストごとにカスタマイズ可能
---
## システム暗号化への影響
### 重大な発見: 標準RHEL暗号化は影響を受けない
**信頼度**: ⭐⭐⭐⭐⭐ **高** - 包括的な分析については [IPsec/XFRM検証レポート](https://github.com/parmstro/cfdr/blob/HEAD/docs/IPSEC_VALIDATION.md) を参照
**Enterprise Linuxデプロイメントにとっての朗報:** [CERT-EU](https://cert.europa.eu/publications/security-advisories/2026-005/)、[CloudLinux](https://blog.cloudlinux.com/cve-2026-31431-copy-fail-mitigation-and-patches)、[HPCsec](https://www.hpcsec.com/2026/04/30/advisory-cve-2026-31431-copy-fail-local-privilege-escalation-via-af-alg-algif_aead/) を含む信頼できる情報源によると、**cfDrの緩和策は標準RHELシステム暗号化およびサービスに最小限からゼロの影響**しか与えません。
### 影響を受けないもの
以下の重要なRHEL暗号化システムは **AF_ALGを使用せず**、当社の修復策の影響を完全に受けません:
#### コアシステムサービス
| サービス/コンポーネント | 機能 | ステータス |
|------------------|----------|--------|
| **dm-crypt / LUKS** | フルディスク暗号化 | ✅ 影響なし |
| **IPsec / XFRM** | VPNおよび暗号化ネットワーク | ✅ 影響なし([検証済み](https://github.com/parmstro/cfdr/blob/HEAD/docs/IPSEC_VALIDATION.md)) |
| **kTLS** | カーネルTLS実装 | ✅ 影響なし |
| **SSH** | セキュアシェル接続 | ✅ 影響なし |
#### 暗号化ライブラリ
| ライブラリ | 用途 | ステータス |
|---------|-------|--------|
| **OpenSSL**(デフォルト) | SSL/TLS、証明書、一般的な暗号化 | ✅ 影響なし |
| **GnuTLS**(デフォルト) | TLS実装 | ✅ 影響なし |
| **NSS** | Mozilla Network Security Services | ✅ 影響なし |
| **カーネルキーリング** | カーネルキー管理 | ✅ 影響なし |
#### 重要なインフラストラクチャ
- ✅ **SSL/TLS** - すべてのWebサーバー暗号化は影響なし
- ✅ **HTTPS** - セキュアなWebトラフィックは影響なし
- ✅ **メール暗号化**(S/MIME、PGP)- 影響なし
- ✅ **証明書操作** - 影響なし
- ✅ **データベース暗号化** - 影響なし
- ✅ **バックアップ暗号化** - 影響なし
### 標準サービスがAF_ALGを使用しない理由
[Linuxカーネル暗号化ドキュメント](https://www.kernel.org/doc/html/v4.11/crypto/userspace-if.html)に記載されているように、**AF_ALGはLinux 2.6.38で導入されたカーネル暗号化へのユーザースペースソケットインターフェース**です。ただし、ほとんどのRHELシステムサービスは、AF_ALGソケットレイヤーを経由せずにカーネル暗号化APIを**直接**使用します。
[CERT-EUのセキュリティアドバイザリ](https://cert.europa.eu/publications/security-advisories/2026-005/)によると:
> 「dm-crypt / LUKS、kTLS、IPsec、SSH、およびデフォルトのOpenSSL / GnuTLSビルドはAF_ALGに依存しておらず、AF_ALGの制限の影響を受けません。」
アーキテクチャは次のようになります:```
┌─────────────────────────────────────────────┐
│ Userspace Applications │
├─────────────────────────────────────────────┤
│ Standard Crypto Libraries │
│ (OpenSSL, GnuTLS, NSS) │
│ │ │
│ └─────> In-Kernel Crypto API ──────────┐ │
│ (Direct access) │ │
├──────────────────────────────────────────┼──┤
│ AF_ALG Socket Interface (RARELY USED) │ │
│ │ │ │
│ └─────> In-Kernel Crypto API ──────────┘ │
├─────────────────────────────────────────────┤
│ Kernel Crypto Subsystem │
│ (AES, SHA, AEAD algorithms) │
└─────────────────────────────────────────────┘
Standard services bypass AF_ALG entirely
R-fx Networksの分析によると:
「ほとんどのHPC環境では、これは何も壊しません。AF_ALGはカーネル暗号へのユーザースペースのフロントドアであり、実際に使用するものはほとんどありません。」
影響を受ける可能性があるのは、以下の極めてまれな構成のみです:
RHELではデフォルトではありません。 afalgエンジンは明示的に設定する必要があります:```bash
openssl engine afalg
**ユースケース:** ハードウェア暗号化アクセラレーションのオフロード
**普及度:** 標準的なデプロイメントでは極めて稀
**影響:** アプリケーションがソフトウェア暗号化にフォールバック
#### 2. libkcapi を使用するカスタムアプリケーション
**専用ライブラリ**を使用した**直接的な AF_ALG ソケットプログラミング**。
**ユースケース:** 専門的なセキュリティツールまたはカスタム暗号化アプリケーション
**普及度:** 標準的なエンタープライズ環境ではほぼ存在しない
**影響:** アプリケーション固有であり、コードの修正が必要
#### 3. ハードウェア暗号化オフロードツール
ハードウェアアクセラレーションに AF_ALG を使用する**専門ツール**。
**ユースケース:** ハイパフォーマンスコンピューティング、暗号化ハードウェアアクセラレータ
**普及度:** 専門的な高セキュリティ環境または HPC 環境のみ
**影響:** ソフトウェア暗号化にフォールバック
### Red Hat 公式見解
[Red Hat Bugzilla #2460538](https://bugzilla.redhat.com/show_bug.cgi?id=2460538) によると:
- **CVE:** CVE-2026-31431
- **深刻度:** 高 (CVSS 7.8)
- **ステータス:** カーネル 6.19.12+ で修正済み
- **修正内容:** 2017年のインプレース最適化 (コミット 72548b093ee3) をリバート
- **影響:** 「algif_aead ではソースとデスティネーションが異なるマッピングから取得されるため、インプレースでの動作に利点はない」
### 緩和フラグ別の影響評価
| フラグ | 緩和策 | 標準サービスへの影響 |
|------|------------|----------------------------|
| 1 | モジュールブラックリスト | ✅ 影響なし - AF_ALG は未使用 |
| 2 | SELinux ポリシー | ✅ 影響なし - 未使用の syscall をブロック |
| **3** | **ブラックリスト + SELinux** | ✅ **影響なし - 推奨** |
| 5 | ブラックリスト + seccomp | ✅ 影響なし - サービス単位で安全 |
| 7 | ブラックリスト + SELinux + seccomp | ✅ 影響なし - 多層防御 |
| 15 | 全緩和策 | ✅ 影響なし - 最大限の保護 |
### 修復後の検証
cfDr の緩和策を適用した後、重要なサービスが引き続き動作することを検証します:```bash
# Test SSH connectivity
ssh localhost echo "SSH working"
# Test HTTPS (if web server running)
curl -k https://localhost
# Test LUKS encryption (if using encrypted volumes)
cryptsetup status /dev/mapper/luks-volume
# Test IPsec (if VPN configured)
ipsec status
# Test system services
systemctl status sshd
systemctl status httpd
systemctl status postgresql
# Check for any service failures
systemctl --failed
期待される結果: すべてのサービスが正常に機能し続けます。
複数の権威あるセキュリティ組織が、当社の評価を裏付けています:
CERT-EU (2026年4月30日):
「dm-crypt / LUKS、kTLS、IPsec、SSH、およびデフォルトのOpenSSL / GnuTLSビルドはAF_ALGに依存していません」
Sysdig (2026年4月29日):
標準的な暗号化操作はAF_ALGソケットではなく、カーネル内APIを使用することを文書化
R-fx Networks (2026年5月2日):
「ホスティングワークロードはAF_ALGを正当に使用しておらず、本番サービスに影響を与えずに緩和策として無効化しても安全です」
HPCsec (2026年4月30日):
「ほとんどのHPC環境では、これは何も壊しません – AF_ALGはカーネル暗号化へのユーザースペースの玄関口であり、実際に使用するものはほとんどありません」
標準的なRHEL/CentOS/Fedora環境向け:
意思決定マトリックス:
| お客様の環境 | 推奨事項 | 理由 |
|---|---|---|
| 標準的なRHELサーバー | 今すぐフラグ3を展開 | 影響ゼロ、即時の保護 |
| カスタム暗号化を使用するRHEL | まずAF_ALGの使用状況を監査 | 極めて可能性は低いが、確認が必要 |
| 開発システム | 今すぐフラグ3を展開 | 本番環境と同じ |
| 高セキュリティ環境 | フラグ7または15を展開 | 最大限の多層防御 |
cfDrの修復策は、すべての標準的なRHELデプロイメントにとって安全です。 algif_aeadモジュールとAF_ALGソケットインターフェースは、Enterprise Linuxシステム上の重要なシステム暗号化では一切使用されていません。
これが意味すること:
唯一の理論上のリスクは、AF_ALGソケットを明示的に使用するようにプログラムされたカスタムアプリケーションです。これは非常に稀なシナリオであり、複数のセキュリティ組織がエンタープライズ環境でAF_ALGをブロックしても安全であることを独立して確認しています。
このワークフローは、徹底性と運用上の安全性のバランスを取っています:
ansible-playbook -i inventory quickstart.yml
**発生する内容**:
- すべてのホストが評価される
- 変更は行われない
- レポートが生成される
**レビュー**:
- 各ホストで `/root/cve-2026-31431-assessment-<hostname>.txt` を確認する
- サマリー出力を確認する
- 脆弱なホストを特定する
**期待される出力**:```
CVE-2026-31431 Summary Report
==========================================
Total hosts scanned: 50
Vulnerable hosts: 12
VULNERABLE HOSTS REQUIRING REMEDIATION:
web1.example.com, web2.example.com, db1.example.com, ...
DEFAULT RECOMMENDED MITIGATION: Flag 3
- Module Blacklist (1) + SELinux (2) = Defense-in-depth
- Module Blacklist alone can be bypassed by root (via insmod)
- SELinux blocks syscall even if blacklist is bypassed
- Covers user_t/unconfined_t (vast majority of scenarios)
ansible-playbook -i inventory quickstart.yml -e generate_inventory=true -e inventory_output_dir=./vulnerable_hosts
**何が起こるか**:
- 脆弱なホストが特定される
- ホストごとに推奨される緩和フラグが計算される
- インベントリファイルが生成される
**レビュー**:```bash
# Check generated inventory
cat vulnerable_hosts/vulnerable_hosts.yml
# Review per-host recommendations
ls vulnerable_hosts/host_vars/
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'dev*:test*'
**何が起こるか**:
- 緩和策はテスト/開発ホストにのみ適用されます
- サービスが再起動されます(seccomp用)
- 検証が実行されます
**確認**:```bash
# Re-scan test hosts
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml quickstart.yml --limit 'dev*:test*'
# Check for "PROTECTED - Defense-in-depth" status
テストアプリケーション:
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'web*'
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'app*'
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'db*'
**何が起こるか**:
- 各ティアは個別に修復される
- サービスは一度に1ティアずつ再起動される
- 段階的な検証が可能になる
**ステージ間の監視**:
- サービスの可用性を確認する
- アプリケーションログを確認する
- ユーザーエクスペリエンスを検証する
#### ステップ5: 検証と文書化```bash
# Final assessment of all hosts
ansible-playbook -i inventory quickstart.yml
ドキュメント:
Total hosts scanned: 50 Vulnerable hosts: 0
All hosts protected with defense-in-depth mitigations
### 緊急対応ワークフロー
**積極的に悪用されている**システムや**差し迫った脅威**に対して:```bash
# Immediate assessment and remediation
ansible-playbook -i inventory quickstart.yml -e apply_remediation=true -e mitigation_flags=3
# Re-verify all hosts
ansible-playbook -i inventory quickstart.yml
このアプローチを使用する場合:
注意: これは、すべての脆弱なホストに同時に緩和策を適用します。注意深く監視してください。
継続的なコンプライアンスと新規システムの検出のために:```bash
0 2 * * 0 ansible-playbook -i inventory quickstart.yml -e generate_inventory=true
**統合先**:
- 構成管理データベース(CMDB)
- セキュリティ情報およびイベント管理(SIEM)
- 修復追跡用のチケットシステム
### カスタム緩和ワークフロー
Flag 3 を超える**特定の要件**の場合:```bash
# Use enhanced protection (Flag 7: Blacklist + SELinux + seccomp)
ansible-playbook -i inventory quickstart.yml \
-e apply_remediation=true \
-e mitigation_flags=7
# Or customize per-host via inventory
# Edit generated host_vars/*.yml files to set custom flags
vim vulnerable_hosts/host_vars/web1.example.com.yml
# Change: recommended_mitigation_flags: 7
# Apply customized settings
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml \
-e apply_remediation=true
修復後、保護を検証します:```bash
sudo lsmod | grep algif_aead
sudo modprobe algif_aead
cat /etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf
sudo semodule -l | grep cve_2026_31431
systemctl show httpd | grep RestrictAddressFamilies
---
## クイックスタート
すぐに始めたいユーザー向け:
### 最も簡単な使い方```bash
# Clone repository
git clone https://github.com/parmstro/cfDr.git
cd cfDr
# Step 1: Assess all hosts
ansible-playbook -i inventory quickstart.yml
# Step 2: Apply recommended mitigations to vulnerable hosts
ansible-playbook -i inventory quickstart.yml --limit vulnerable_hosts -e apply_remediation=true
ansible-playbook -i /path/to/your/inventory quickstart.yml
ansible-playbook -i /path/to/your/inventory quickstart.yml
--limit vulnerable_hosts
-e apply_remediation=true
### 脆弱性インベントリの生成```bash
# Scan and create inventory of vulnerable hosts
ansible-playbook -i inventory quickstart.yml -e generate_inventory=true
# Review generated files
ls inventory_output/
# Apply mitigations using generated inventory
ansible-playbook -i inventory_output/vulnerable_hosts.yml cve_2026_31431_playbook.yml \
-e apply_remediation=true
プレイブック実行ごとにデフォルトの緩和策を上書きします:```bash
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=1
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=2
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=3
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=7
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=15
### SELinux ドメインのカスタマイズ
`roles/cve_2026_31431/defaults/main.yml` を編集します:```yaml
# Add additional domains to protect
selinux_denied_domains:
- user_t
- unconfined_t
- httpd_t
- postgresql_t
- mysqld_t
- custom_app_t # Your custom domain
- another_service_t
roles/cve_2026_31431/defaults/main.yml を編集します:```yaml
seccomp_protected_services:
### カスタムインベントリ出力ディレクトリ```bash
# Specify custom output location
ansible-playbook quickstart.yml \
-e generate_inventory=true \
-e inventory_output_dir=/path/to/output
sample_playbook.yml には複数の例が含まれています:```yaml
### 要件
- **Ansible**: 2.9 以上(2.15+ 推奨)
- **特権アクセス**: ターゲットホストでの sudo/root
- **Python**: ターゲットホストで 2.7 または 3.5+
- **対応 OS**: Red Hat Enterprise Linux、CentOS、Fedora(Debian/Ubuntu は限定的なサポート)
---
## 追加リソース
### CVE 情報と分析
**公式ソース**:
- [NVD - CVE-2026-31431](https://nvd.nist.gov/vuln/detail/CVE-2026-31431)
- [MITRE CVE エントリ](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-31431)
**セキュリティ調査と分析**:
- [Sysdig - CVE-2026-31431 分析](https://www.sysdig.com/blog/cve-2026-31431-copy-fail-linux-kernel-flaw-lets-local-users-gain-root-in-seconds)
- [The Hacker News - Copy Fail 脆弱性](https://thehackernews.com/2026/04/new-linux-copy-fail-vulnerability.html)
- [CERT-EU セキュリティ勧告](https://cert.europa.eu/publications/security-advisories/2026-005/)
- [Help Net Security - Copy Fail の詳細](https://www.helpnetsecurity.com/2026/04/30/copyfail-linux-lpe-vulnerability-cve-2026-31431/)
### 関連する緩和プロジェクト
CVE-2026-31431 の緩和に対するコミュニティ貢献:
- **[block-copyfail](https://github.com/atgreen/block-copyfail)** - Anthony Green による eBPF LSM 実装
- 包括的な eBPF ベースの緩和
- 最新カーネル向けのシステム全体の保護
- cfDr の eBPF 実装のソース
- **[Blastwall](https://gprocunier.github.io/blastwall/demo.html)** - Greg Procunier による SELinux ポリシーフレームワーク
- 高度な SELinux ポリシー管理
- 複数 CVE 対応の保護フレームワーク
- cfDr の SELinux 実装のソース
### Red Hat 固有のリソース
**ナレッジベース記事**:
- [Red Hat カスタマーポータル - CVE-2026-31431](https://access.redhat.com/security/cve/cve-2026-31431)
- [Red Hat セキュリティデータ - 影響を受ける製品](https://access.redhat.com/security/data/metrics/)
**緩和ガイド**:
- [Enterprise Linux 向け SELinux - ユーザーガイド](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/using_selinux/)
- [systemd セキュリティ機能](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_systems_using_the_rhel_9_web_console/securing-systemd-services_system-management-using-the-rhel-9-web-console)
### ドキュメント
**cfDr 拡張ドキュメント**:
- [Enterprise Linux 緩和ガイド](https://github.com/parmstro/cfdr/blob/HEAD/enterprise-linux-mitigations.md) - すべての緩和方法の包括的な比較
- [SELinux 緩和ガイド](https://github.com/parmstro/cfdr/blob/HEAD/selinux-mitigation.md) - 詳細な SELinux ポリシー実装
- [seccomp 緩和ガイド](https://github.com/parmstro/cfdr/blob/HEAD/seccomp-mitigation.md) - systemd seccomp フィルタ実装
- [eBPF LSM 緩和ガイド](https://github.com/parmstro/cfdr/blob/HEAD/ebpf-lsm-mitigation.md) - eBPF LSM プログラム実装
- [docs/CONTRIBUTORS.md](https://github.com/parmstro/cfdr/blob/HEAD/CONTRIBUTORS.md) - 貢献ガイドラインとクレジット
**Ansible ドキュメント**:
- [Ansible ユーザーガイド](https://docs.ansible.com/ansible/latest/user_guide/)
- [Ansible ベストプラクティス](https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html)
---
## パッチの監視
### Red Hat Enterprise Linux
**主なソース**: Red Hat カスタマーポータル
- **セキュリティ勧告**: https://access.redhat.com/security/security-updates/
- **エラータ勧告**: https://access.redhat.com/errata/
- **CVE トラッカー**: https://access.redhat.com/security/cve/cve-2026-31431
**通知方法**:
1. **メールアラート**(推奨):
- Red Hat カスタマーポータルにログイン
- 移動先: アカウント設定 → 通知
- 有効化: 「セキュリティ勧告」と「製品エラータ」
- 選択: 管理している RHEL バージョン
2. **RSS フィード**:
- RHEL 7 セキュリティ: https://access.redhat.com/blogs/766093/feed
- RHEL 8 セキュリティ: https://access.redhat.com/blogs/1683903/feed
- RHEL 9 セキュリティ: https://access.redhat.com/blogs/5480361/feed
- 全セキュリティ: https://access.redhat.com/security/data/oval/com.redhat.rhsa-all.xml
3. **API アクセス**: ```bash
# Check for kernel security updates
curl -H "Accept: application/json" \
"https://access.redhat.com/labs/securitydataapi/cve/CVE-2026-31431.json"
自動監視: ```bash
sudo yum install yum-plugin-security
sudo yum updateinfo list security
sudo yum updateinfo list security kernel
確認すべき項目:
アドバイザリ形式の例:``` RHSA-2026:XXXX - Important: kernel security update Severity: Important CVEs: CVE-2026-31431 Affected Products: RHEL 7, 8, 9
### CentOS / Rocky Linux / AlmaLinux
**CentOS Stream**:
- **アナウンス**: https://lists.centos.org/pipermail/centos-announce/
- **セキュリティメーリングリスト**: https://lists.centos.org/mailman/listinfo/centos-security-announce
**Rocky Linux**:
- **セキュリティトラッカー**: https://errata.rockylinux.org/
- **アナウンス**: https://rockylinux.org/news/
**AlmaLinux**:
- **エラータ**: https://errata.almalinux.org/
- **セキュリティ**: https://wiki.almalinux.org/security/
### Fedora
**主な情報源**: Fedora Project
- **更新システム**: https://bodhi.fedoraproject.org/
- **セキュリティリスト**: https://lists.fedoraproject.org/archives/list/[email protected]/
**通知方法**:```bash
# Subscribe to security announcements
# Visit: https://lists.fedoraproject.org/admin/lists/security-announce.lists.fedoraproject.org/
# Check for updates
sudo dnf check-update kernel
# View available security updates
sudo dnf updateinfo list security
主な情報源: Ubuntu セキュリティ通知
通知方法:```bash
sudo apt update sudo apt list --upgradable | grep security
sudo apt install ubuntu-security-tools usn list --cve CVE-2026-31431
### Debian
**主な情報源**: Debian Security Tracker
- **セキュリティトラッカー**: https://security-tracker.debian.org/tracker/CVE-2026-31431
- **セキュリティ告知**: https://www.debian.org/security/
**通知方法**:```bash
# Subscribe to Debian Security Announcements
# Visit: https://lists.debian.org/debian-security-announce/
# Check for security updates
sudo apt update
sudo apt list --upgradable
主な情報源: SUSE Security
通知方法:```bash
sudo zypper list-patches --category security
sudo zypper info --cve CVE-2026-31431
### アップストリームカーネル
**Linuxカーネルメーリングリスト**:
- **LKMLアーカイブ**: https://lkml.org/
- **セキュリティリスト**: https://www.kernel.org/category/releases.html
**Gitリポジトリ**:```bash
# Monitor kernel git for patches
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
# Search for CVE-2026-31431 patches
git log --all --grep="CVE-2026-31431"
環境用の監視スクリプトを作成します:```bash #!/bin/bash
DISTRO=$(grep ^ID= /etc/os-release | cut -d= -f2 | tr -d '"')
case $DISTRO in rhel|centos|rocky|alma) yum updateinfo list security kernel 2>/dev/null | grep -i CVE-2026-31431 ;; fedora) dnf updateinfo list security kernel 2>/dev/null | grep -i CVE-2026-31431 ;; ubuntu|debian) apt-get update -qq apt-cache show linux-image-$(uname -r) | grep CVE-2026-31431 ;; sles|opensuse*) zypper info --cve CVE-2026-31431 kernel-default ;; esac
curl -s "https://access.redhat.com/labs/securitydataapi/cve/CVE-2026-31431.json" |
jq -r '.affected_release[] | select(.package | startswith("kernel")) |
"(.product_name): (.advisory) - (.package)"'
**cronでスケジュール設定**:```bash
# Check daily for patches
0 6 * * * /usr/local/bin/check-cve-2026-31431-patch.sh | mail -s "CVE-2026-31431 Patch Check" [email protected]
パッチの入手可能性を確認する: ```bash
sudo yum check-update kernel # RHEL/CentOS/Fedora sudo apt update && apt list --upgradable linux-image-* # Ubuntu/Debian
リリースノートを確認:
本番環境以外でテスト: ```bash
sudo yum update kernel # RHEL/CentOS/Fedora sudo apt upgrade linux-image-* # Ubuntu/Debian sudo reboot
パッチの有効性を検証する: ```bash
uname -r
ansible-playbook -i inventory quickstart.yml
本番展開を計画する:
一時的な緩和策を削除する(任意): ```bash
sudo rm /etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf sudo semodule -r cve_2026_31431_af_alg_deny # SELinux policy
推奨事項: カーネルパッチ適用後も、将来の脆弱性に対する保護として多層防御の緩和策を維持することを検討してください。
バグを発見した場合や機能リクエストがある場合:
貢献を歓迎します! docs/CONTRIBUTORS.md を参照してください:
cfDrはセキュリティ専門家の集合的な専門知識に基づいて構築されています:
完全な貢献の詳細については docs/CONTRIBUTORS.md を参照してください。
このプロジェクトは、脆弱性評価および修復目的のためにMITライセンスの下で提供されています。
詳細については LICENSE を参照してください。
重要: このツールは、ベンダー提供のカーネルパッチを待つ間の一時的な緩和策を提供します。これらの緩和策はリスクを大幅に軽減しますが、すべてのシナリオで完全な保護を提供するとは限りません。
cfDrは「現状のまま」保証なしで提供されます。常に:
cfDrの貢献者およびメンテナーは、このツールの使用に起因するいかなる損害やデータ損失についても責任を負いません。
最終更新日時: 2026-05-02T23:30:00Z