Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-31431-CopyFail — CVE-2026-31431 (Copy Fail) のローカル権限昇格エクスプロイトで、AF_ALG AEAD モジュールを介した Linux カーネルのページキャッシュ破壊を標的としています。PoC、検出ルール、ラボ環境のセットアップ、および許可されたセキュリティテスト用の緩和スクリプトを含みます。 | Kitploit
ツール/GitHubGitHub/0xfuffm3/cve-2026-31431-copyfail
特権昇格脆弱性分析エクスプロイトペネトレーションテスト学習と教育コンテナエスケープバイナリエクスプロイトラボと実践

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHub
0xfuffm3/cve-2026-31431-copyfail

CVE-2026-31431-CopyFail

CVE-2026-31431 (Copy Fail) のローカル権限昇格エクスプロイトで、AF_ALG AEAD モジュールを介した Linux カーネルのページキャッシュ破壊を標的としています。PoC、検出ルール、ラボ環境のセットアップ、および許可されたセキュリティテスト用の緩和スクリプトを含みます。

リポジトリを見る
3ヶ月前未レビュー
root@kitploit:~
                     ██████╗ ██████╗ ██████╗ ██╗   ██╗    ███████╗ █████╗ ██╗██╗
                    ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝    ██╔════╝██╔══██╗██║██║
                    ██║     ██║   ██║██████╔╝ ╚████╔╝     █████╗  ███████║██║██║
                    ██║     ██║   ██║██╔═══╝   ╚██╔╝      ██╔══╝  ██╔══██║██║██║
                         ╚██████╗╚██████╔╝██║        ██║       ██║     ██║  ██║██║███████╗
                          ╚═════╝ ╚═════╝ ╚═╝        ╚═╝       ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝

CVE-2026-31431 — "Copy Fail"

Linuxカーネルのローカル権限昇格 — algif_aead ページキャッシュ破損


CVE CVSS Kernel-yellow?style=for-the-badge&logo=linux&logoColor=black) License Status


⚠️ 許可された使用のみ — このリポジトリは、合法的な許可の下で活動するペネトレーションテスター、セキュリティ研究者、防御者のみを対象としています。誤った使用は犯罪行為です。


📖 目次


🔍 Copy Failとは?

Copy Fail は、2026年4月29日に公開された**ローカル権限昇格(LPE)**脆弱性で、2017年以降のカーネルを実行するほぼすべての主要なLinuxディストリビューションに影響します。

root@kitploit:~
権限のないユーザー  ──►  AF_ALG + splice()  ──►  4バイトのページキャッシュ書き込み  ──►  ROOT

重要な事実

危険な理由

  • 🕵️ ステルス性 — 変更はページキャッシュ内のみに留まり、ディスク上のファイルは決して変更されません。標準的なディスクフォレンジックでは検知できません。
  • ⚡ 信頼性 — 決定論的なロジックの欠陥であり、レースコンディションではありません。環境間で一貫した悪用が可能です。
  • 🌐 普遍性 — Ubuntu、RHEL、Amazon Linux、SUSE、Debianなど、2017年以降の主要ディストリビューションすべてに影響します。
  • ☸️ クラウド/K8sへの影響 — KubernetesワークロードやCI/CDランナーにおけるコンテナエスケープを容易にします。
  • 🤖 AIによる発見 — Xint CodeのAIシステムにより、約1時間のスキャン時間と単一のオペレータープロンプトで発見されました。

🔬 技術的詳細

根本原因

この脆弱性は、2017年に導入された(commit 72548b093ee3)Linuxカーネルのユーザー空間暗号API(AF_ALG)の algif_aead モジュール内のバグのあるインプレース最適化に起因します。

root@kitploit:~
AF_ALG (ユーザー空間暗号API)
└── algif_aead モジュール
    └── authencesn テンプレート  ◄── 脆弱
        └── インプレース最適化 (2017)
            └── req->src == req->dst  ◄── splice() からのページが書き込み可能なdstスキャッターリストにチェーンされる

攻撃の流れ

root@kitploit:~
Step 1: AF_ALG AEADソケットを開く
        socket(AF_ALG, SOCK_SEQPACKET, 0)

Step 2: ターゲットファイルを参照するsplice()ページを送信
        (特権バイナリのページキャッシュページ、例: /usr/bin/sudo)

Step 3: authencesnのスクラッチ書き込みをトリガー
        authencesnがdstバッファをスクラッチパッドとして使用 →
        正規の出力領域を超えて4バイトの制御可能なデータを書き込む

Step 4: ターゲットファイルのページキャッシュエントリが破損する
        (ディスクファイルは未変更 — メモリ上のコピーのみ改変)

Step 5: 改変されたバイナリを実行 → ROOT

なぜページキャッシュなのか?

Linuxカーネルのページキャッシュは、ファイルのメモリ上のコピーをバックします。ファイルが読み込まれると、そのページはキャッシュされます。splice() システムコールは、これらのキャッシュされたページを直接参照できます。ページキャッシュページをAF_ALG AEADスキャッターリストに渡すことで、authencesnのスクラッチ書き込みはそのキャッシュページ内に着地し、読み取り可能なあらゆるファイル(sudo、pkexec、passwdなどの特権バイナリを含む)のメモリ上のコピーを事実上パッチすることになります。

修正

アップストリームの修正は、欠陥のある2017年の最適化を差し戻します:

root@kitploit:~
# コミット a664bf3d603d で修正済み
git show a664bf3d603d

🖥️ 影響を受けるシステム

Linuxカーネルバージョン

ディストリビューションマトリックス


📁 リポジトリ構造

root@kitploit:~
CVE-2026-31431-CopyFail/
│
├── 📄 README.md                          ← 現在地
├── 📄 LICENSE                            ← 研究・教育用ライセンス
├── 📄 DISCLAIMER.md                      ← 法的・倫理的使用ポリシー
├── 📄 CHANGELOG.md                       ← バージョン履歴
│
├── 📂 docs/
│   ├── vulnerability-analysis.md         ← 詳細:根本原因とメカニズム
│   ├── exploitation-walkthrough.md       ← ステップバイステップの方法論
│   ├── affected-kernels.md               ← 完全なカーネル/ディストリバージョン表
│   ├── detection.md                      ← Defender、Tenable、Wazuhの対応状況
│   └── references.md                     ← すべてのCVE、ブログ、アドバイザリ
│
├── 📂 exploit/
│   ├── README.md                         ← 使用方法、前提条件、テスト済みディストリ
│   ├── copyfail.py                       ← 参考PoC(教育用)
│   ├── trigger.c                         ← AF_ALG + splice() Cトリガー
│   └── variants/
│       ├── ubuntu.py                     ← Ubuntu向けバリアント
│       ├── rhel.py                       ← RHEL/CentOS向けバリアント
│       └── amazon_linux.py              ← Amazon Linux向けバリアント
│
├── 📂 detection/
│   ├── yara/
│   │   └── copyfail.yar                  ← エクスプロイトアーティファクト用YARAルール
│   ├── sigma/
│   │   └── copyfail_lpe.yml              ← SIEM/SOC用Sigmaルール
│   └── scripts/
│       ├── check_vulnerable.sh           ← カーネル脆弱性の簡易チェック
│       └── detect_algif_aead.sh         ← モジュールがロード/アクティブか確認
│
├── 📂 mitigation/
│   ├── README.md                         ← 緩和策の概要
│   ├── disable_algif_aead.sh             ← 影響を受けるカーネルモジュールを無効化
│   ├── patch-notes.md                    ← アップストリームパッチの詳細
│   └── kubernetes-hardening.md          ← K8s / コンテナのハードニング
│
├── 📂 lab/
│   ├── Vagrantfile                       ← 再現可能な脆弱VM
│   ├── setup.sh                          ← ラブのブートストラップスクリプト
│   └── docker/
│       └── Dockerfile                    ← 脆弱なUbuntuコンテナ
│
├── 📂 reports/
│   ├── pentest-report-template.md        ← クライアント向けレポートテンプレート
│   └── sample-finding.md                ← サンプル調査報告書
│
└── 📂 assets/
    ├── demo.gif                          ← (オプション) 端末デモ
    └── diagrams/
        └── page-cache-write.png         ← 攻撃フロー図

🧪 ラボ環境のセットアップ

必ず隔離された認可環境でテストしてください。本番システムでエクスプロイトを実行しないでください。

オプションA — Vagrant VM(推奨)

root@kitploit:~
# リポジトリをクローン
git clone https://github.com/0xFuffM3/CVE-2026-31431-CopyFail.git
cd CVE-2026-31431-CopyFail

# 脆弱なラボVMを起動
cd lab/
vagrant up

# ラボにSSH
vagrant ssh

# カーネルバージョンの確認(脆弱であるべき)
uname -r

オプションB — Dockerコンテナ

root@kitploit:~
cd lab/docker/

# 脆弱なコンテナイメージをビルド
docker build -t copyfail-lab .

# カーネル操作に必要な権限で実行
docker run --rm -it --privileged copyfail-lab /bin/bash

システムが脆弱か確認

root@kitploit:~
# 簡易チェックスクリプトを実行
chmod +x detection/scripts/check_vulnerable.sh
./detection/scripts/check_vulnerable.sh

脆弱なシステムでの期待される出力:

root@kitploit:~
[!] カーネルバージョン: 5.15.0-91-generic
[!] algif_aead モジュール: ロード済み
[✗] システムは CVE-2026-31431 (Copy Fail) に対して脆弱と見られます
[*] 推奨アクション: カーネルアップデートを適用するか、algif_aead を無効化してください

パッチ適用済みシステムでの期待される出力:

root@kitploit:~
[✓] カーネルバージョン: 6.1.132
[✓] システムは CVE-2026-31431 (Copy Fail) に対してパッチ適用済みと見られます

💥 エクスプロイトの使い方

前提: 脆弱なシステム上で権限のないユーザーとしてローカルアクセスが必要です。

前提条件

root@kitploit:~
# Python 3.6+
python3 --version

# 必要なカーネルモジュールが存在すること
lsmod | grep algif_aead

# ターゲットバイナリが読み取り可能であること
ls -la /usr/bin/sudo

PoCの実行

root@kitploit:~
cd exploit/

# 現在の権限レベルを確認
id
# uid=1000(user) gid=1000(user) groups=1000(user)

# Copy Fail PoCを実行
python3 copyfail.py

# 権限昇格を確認
id
# uid=0(root) gid=0(root) groups=0(root)

ペンテストワークフロー

root@kitploit:~
1. カーネルバージョンを列挙
   └─► uname -r / cat /proc/version

2. algif_aead がロードされているか確認
   └─► lsmod | grep algif_aead

3. 低権限の足がかりを確認
   └─► id / whoami

4. Copy Fail PoCを実行
   └─► python3 exploit/copyfail.py

5. rootアクセスを確認
   └─► id && cat /etc/shadow

6. 証拠を文書化
   └─► スクリーンショット + カーネルバージョン、ディストリ、エクスプロイトハッシュを記録

7. 緩和策を適用(テスト後)
   └─► sudo bash mitigation/disable_algif_aead.sh

8. ペンテストレポートに含める
   └─► reports/pentest-report-template.md を使用

🔎 検知

YARAルール

root@kitploit:~
// detection/yara/copyfail.yar
rule CopyFail_CVE_2026_31431 {
    meta:
        description = "Copy Fail (CVE-2026-31431) エクスプロイトアーティファクトの検出"
        author      = "0xFuffM3"
        date        = "2026-04-30"
        reference   = "https://copy.fail"
    strings:
        $py1 = "algif_aead" ascii
        $py2 = "AF_ALG" ascii
        $py3 = "splice" ascii
        $py4 = "page_cache" ascii
        $py5 = "authencesn" ascii
    condition:
        3 of them
}

YARAスキャンの実行:

root@kitploit:~
yara detection/yara/copyfail.yar /tmp/ -r

Sigmaルール(SIEM)

root@kitploit:~
# detection/sigma/copyfail_lpe.yml
title: Copy Fail LPE Exploit Execution (CVE-2026-31431)
status: stable
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        CommandLine|contains:
            - 'AF_ALG'
            - 'algif_aead'
            - 'authencesn'
    condition: selection
falsepositives:
    - 正規の暗号APIテスト
level: high

簡易検知スクリプト

root@kitploit:~
chmod +x detection/scripts/detect_algif_aead.sh
./detection/scripts/detect_algif_aead.sh

セキュリティツールの対応状況


🛡️ 緩和策

オプション1 — カーネルパッチの適用(推奨)

root@kitploit:~
# Ubuntu / Debian
sudo apt-get update && sudo apt-get upgrade linux-image-generic

# RHEL / CentOS
sudo yum update kernel

# Amazon Linux
sudo yum update kernel

# アップデート後、再起動
sudo reboot

オプション2 — algif_aead モジュールの無効化(暫定措置)

root@kitploit:~
# 緩和スクリプトを実行
chmod +x mitigation/disable_algif_aead.sh
sudo bash mitigation/disable_algif_aead.sh

スクリプトの内容:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || echo "[*] モジュールは現在ロードされていません"
echo "[✓] algif_aead を無効化しました。再起動して永続性を確認してください。"

オプション3 — Kubernetesハードニング

mitigation/kubernetes-hardening.md を参照:

  • Podセキュリティポリシーでの AF_ALG ソケット作成の制限
  • socket(AF_ALG, ...) システムコールをブロックするSeccompプロファイル
  • KubernetesノードとCI/CDランナーの優先パッチ適用

📝 ペンテストレポート

クライアント向けのすぐに使えるレポートテンプレートは reports/pentest-report-template.md にあります。

サンプル調査結果サマリー

root@kitploit:~
Finding:    Copy Fail (CVE-2026-31431) によるローカル権限昇格
Severity:   高 (CVSS 7.8)
Host:       10.10.10.55 (ubuntu-prod-01)
Kernel:     5.15.0-91-generic

Evidence:
  - 権限のないシェル (uid=1000) から root (uid=0) に昇格
  - カーネルモジュール algif_aead がロードされていることを確認
  - ディスクアーティファクトなし — ページキャッシュのみ

Recommendation:
  1. ベンダーのカーネルパッチを直ちに適用
  2. 暫定措置: algif_aead モジュールを無効化
  3. KubernetesノードとCI/CDランナーを確認

⚖️ 法的・倫理的注意

このリポジトリのものを使用する前に必ずお読みください。

このリポジトリは、正当なセキュリティ研究、許可されたペネトレーションテスト、防御的なセキュリティ目的のためだけに公開されています。

  • ✅ 許可される: 自分が所有する、または明示的な書面によるテスト許可を得ているシステムでのテスト
  • ✅ 許可される: 隔離されたラボ環境でのセキュリティ研究
  • ✅ 許可される: 防御的利用 — 検知、パッチ適用、ハードニング
  • ❌ 禁止: 書面による許可なしでのシステムテスト
  • ❌ 禁止: 本番システムに対するエクスプロイトの展開
  • ❌ 禁止: 現地、国内、国際法に違反するあらゆる使用

本素材の無許可使用は、コンピュータ詐欺および濫用法(CFAA)、EU指令2013/40/EU、インドIT法2000、および管轄区域の同等の法律に違反する可能性があります。

著者は誤用に対する一切の責任を負いません。完全な法的通知は DISCLAIMER.md をご覧ください。


📚 参考文献


🤝 コントリビューション

セキュリティ研究者の貢献を歓迎します:

  1. リポジトリをフォーク
  2. フィーチャーブランチを作成: git checkout -b feat/your-contribution
  3. 変更をコミット: git commit -m "Add: detection rule for X"
  4. プッシュし、プルリクエストを開く

責任ある開示の規範に従ってください。パッチ適用済みシステムを対象とした武器化された本番向けエクスプロイトコードは含めないでください。


セキュリティコミュニティのために — 責任を持って使用してください。

Follow

ツールをダウンロード
#セクション説明
1Copy Failとは?脆弱性概要
2技術的詳細根本原因分析
3影響を受けるシステムディストリビューション&カーネルマトリックス
4リポジトリ構造ファイル構成
5ラボ環境のセットアップ安全に再現する方法
6エクスプロイトの使い方ペンテストのワークフロー
7検知YARA、Sigma、スクリプト
8緩和策パッチとハードニング
9ペンテストレポートレポートテンプレート
10法的・倫理的注意免責事項
11参考文献CVE、アドバイザリ、ブログ
プロパティ詳細
CVE IDCVE-2026-31431
ニックネームCopy Fail
CVSS v3.17.8 (高)
攻撃ベクトルローカル
必要な権限低(任意の権限のないユーザー)
ユーザー操作不要
発見者Xint Code (Theori)
公開日2026年4月29日
エクスプロイトサイズ732バイト(Python PoC)
パッチ状況✅ 利用可能 — コミット a664bf3d603d を差し戻し
カーネルブランチ影響あり?修正バージョン
4.9.x (LTS)✅ はい4.9.340+
5.4.x (LTS)✅ はい5.4.295+
5.10.x (LTS)✅ はい5.10.239+
5.15.x (LTS)✅ はい5.15.185+
6.1.x (LTS)✅ はい6.1.132+
6.6.x (LTS)✅ はい6.6.83+
6.12.x (LTS)✅ はい6.12.19+
< 4.9 (2017年以前)❌ いいえ該当なし — 最適化が存在しない
ディストリビューション影響を受けるバージョンパッチ適用済み?アドバイザリ
Ubuntu< 26.04 (すべてのリリース)✅ パッチ適用済みUSN
Ubuntu 26.04 (Resolute)❌ 影響なし——
RHEL / CentOS7, 8, 9✅ パッチ適用済みRHSA-2026
Amazon Linux2, 2023✅ パッチ適用済みALAS
SUSE / openSUSEすべて影響あり✅ パッチ適用済みSUSE-SU
DebianBullseye, Bookworm✅ パッチ適用済みDSA
CloudLinux8, 9✅ パッチ適用済みアドバイザリ
ツール検知サポート
Microsoft Defender (MDVM)✅ あり
Tenable Nessus✅ あり
Qualys✅ あり
Wazuh✅ カスタムSigmaルール経由
Palo Alto Cortex XDR✅ あり
CrowdStrike Falcon✅ あり
ソースリンク
オリジナル開示 (Xint/Theori)copy.fail
Xint Code技術解説xint.io/blog/copy-fail
NVDエントリnvd.nist.gov
Microsoftセキュリティブログmicrosoft.com/security/blog
Ubuntuアドバイザリubuntu.com/blog
CERT-EUアドバイザリcert.europa.eu
Tenable FAQtenable.com/blog
Palo Alto Unit 42unit42.paloaltonetworks.com
CloudLinuxアドバイザリblog.cloudlinux.com
Bugcrowd分析bugcrowd.com/blog
Linuxカーネルパッチkernel.org — commit a664bf3d603d