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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-31431 — 分析 - POC - 緩和 | Kitploit
ツール/GitHubGitHub/sebastian294/cve-2026-31431
特権昇格脆弱性分析エクスプロイト学習と教育バイナリエクスプロイトラボと実践
GitHubsebastian294/cve-2026-31431

cve-2026-31431

分析 - POC - 緩和

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-31431 — Copy Fail: Linux Kernel LPE 研究ラボ

教育目的のみ。明示的な許可なしにシステムで使用しないでください。


目次

  • 脆弱性の説明
  • 影響を受けるコンポーネント
  • 動作の仕組み
  • ラボのセットアップ(Docker)
  • PoC — デモ
  • 緩和策
  • 参考文献

脆弱性の説明

フィールド値
CVECVE-2026-31431
AliasCopy Fail
CVSS7.8 (High)
タイプLocal Privilege Escalation (LPE)
影響を受けるカーネル2017 – 2026 (commit 72548b093ee3 以降)
上流の修正commit a664bf3d603d(2017年のリバート)
開示日2026年4月29日(Theori / Xint Code)

Copy Fail は、Linux カーネルの暗号サブシステムにおける 決定論的(レース条件不要)な論理バグです。特権のないユーザーが、su や sudo などの setuid バイナリを含む、システム上の任意の読み取り可能ファイルの ページキャッシュ に、制御された4バイトを書き込むことを可能にします。

なぜ特に深刻なのか?

類似の過去の脆弱性と比較して:


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

root@kitploit:~
Linux kernel — crypto/authencesn.c
  └── algif_aead (AF_ALG モジュール)
        └── インプレース最適化 (commit 72548b093ee3, 2017)
              └── AEAD スクラッチ書き込み → scatterlist 境界を越える
                    └── 外部ファイルのページキャッシュに4バイト書き込み

影響を受けるディストリビューション: Ubuntu, Debian, RHEL, Amazon Linux, SUSE, Fedora, Arch, AlmaLinux — カーネルが 2017 年以降のあらゆるディストリビューション。


動作の仕組み

根本原因

2017 年に導入された最適化により、req->src と req->dst が同一の結合 scatterlist を指すようになりました。これにより、splice() から取得したページキャッシュのページが、直接 書き込み可能な 宛先 scatterlist に連結されます。

攻撃チェーン

root@kitploit:~
1. authencesn アルゴリズムで AF_ALG ソケットを開く
2. splice() を使用してターゲットバイナリ(例:/usr/bin/sudo)のページキャッシュページを
   AF_ALG ソケットに供給する
3. AEAD 復号操作を実行する
4. authencesn は宛先バッファをスクラッチパッドとして使用 →
   seqno_hi(制御された4バイト)を正当な出力の外に書き込み、
   scatterlist の境界を越える
5. その4バイトはターゲットバイナリのページキャッシュページに到達する
6. ディスク上のファイルは変更されない → 整合性チェックは検出しない
7. メモリ内で修正されたバイナリがペイロードを実行 → root 権限取得

なぜステルス性が高いのか

書き込みは通常の VFS 書き込みパスをバイパス します。ディスク上のファイルはそのまま残ります。sha256sum、aide、tripwire、inotify などのツールは、ディスク上のファイルや inode に対して動作し、メモリ内のページキャッシュに対しては動作しないため、変更を検出しません。


ラボのセットアップ(Docker)

このラボでは、ページキャッシュの破壊を実証するために脆弱なカーネルを使用します。Docker 環境では、完全な権限昇格はホストの設定(共有カーネル)に依存します。

root@kitploit:~
# リポジトリをクローン
cd cve-2026-31431

# 脆弱なイメージをビルド
docker build -t copyfail-lab -f docker/Dockerfile.vulnerable .

# ラボを実行
docker run --rm -it \
  --cap-add=NET_ADMIN \
  --security-opt seccomp=unconfined \
  copyfail-lab bash

# コンテナ内:
cd /lab
python3 exploit/poc.py

必要条件

  • Docker ≥ 20.x
  • ホストカーネル:パッチ未適用の Ubuntu/Debian カーネル 5.x または 6.x(docs/ の表を参照)
  • コンテナ内の Python 3.10+(os.splice 用)

PoC — デモ

exploit/poc.py および exploit/README.md を参照してください。

PoC は以下を実証します:

  1. ページキャッシュの破壊(確認可能)
  2. ターゲットファイルへの制御された4バイト書き込み
  3. 完全な LPE:ホストカーネルに依存(注釈参照)

緩和策

詳細な手順は mitigation/README.md を参照してください。

TL;DR — 即時緩和策(再起動不要):

root@kitploit:~
# 影響を受けるモジュールを無効化
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo modprobe -r algif_aead 2>/dev/null || true

恒久修正: カーネルをパッチ適用済みバージョン(a664bf3d603d 以降)に更新してください。


リポジトリ構成

root@kitploit:~
cve-2026-31431/
├── README.md                    ← このファイル
├── docs/
│   ├── technical-analysis.md    ← 詳細な技術分析
│   └── affected-kernels.md      ← 影響を受ける/パッチ済みバージョンの表
├── exploit/
│   ├── README.md                ← PoC のドキュメント
│   └── poc.py                   ← 概念実証(Python 3.10+)
├── mitigation/
│   ├── README.md                ← 緩和策ガイド
│   ├── disable-algif.conf       ← modprobe 設定
│   └── check-vulnerable.sh      ← 検出スクリプト
├── docker/
│   ├── Dockerfile.vulnerable    ← 脆弱なラボ
│   └── Dockerfile.patched       ← 緩和策適用済みラボ
└── scripts/
    └── setup-lab.sh             ← ラボの自動セットアップ

開示のタイムライン


参考文献

  • Xint Code — Copy Fail 公式レポート
  • copy.fail — アドバイザリサイト
  • 公式GitHub — theori-io/copy-fail-CVE-2026-31431
  • NVD — CVE-2026-31431
  • Ubuntu セキュリティアドバイザリ
  • Microsoft セキュリティブログ
  • Unit 42 — Palo Alto 分析
  • 上流修正コミット a664bf3d603d
ツールをダウンロード
脆弱性タイプレース条件必要?移植性?エクスプロイトサイズ
Dirty Cow (CVE-2016-5195)CoW レースはい部分的~KB
Dirty Pipe (CVE-2022-0847)パイプバッファいいえ制限あり~KB
Copy Fail (CVE-2026-31431)論理的いいえ完全732 bytes
日付イベント
2017commit 72548b093ee3 によりカーネルにバグが導入される
~2025Theori/Xint Code が暗号サブシステムの分析を開始
2026年4月28日ベンダーとの調整
2026年4月29日公開開示 + PoC 公開
2026年5月1日パッチ適用済みカーネルがプロダクションリポジトリで利用可能に
2026年5月1日CISA KEV カタログに追加