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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-31431 — Linuxカーネルのローカル権限昇格(CVE-2026-31431)を悪用し、ページキャッシュを破壊してrootを取得するエクスプロイトおよび検出ツール。緩和策のガイダンスも含む。 | Kitploit
ツール/GitHubGitHub/kaleth4/cve-2026-31431
特権昇格エクスプロイトフレームワーク脆弱性分析エクスプロイトペネトレーションテスト
GitHubkaleth4/cve-2026-31431

CVE-2026-31431

Linuxカーネルのローカル権限昇格(CVE-2026-31431)を悪用し、ページキャッシュを破壊してrootを取得するエクスプロイトおよび検出ツール。緩和策のガイダンスも含む。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

🚨 CVE-2026-31431: Copy Fail

Linuxカーネルに存在する9年間の重大な脆弱性。数秒でroot権限を取得可能


📋 エグゼクティブサマリー

属性詳細
CVECVE-2026-31431
ニックネームCopy Fail
タイプローカル権限昇格(LPE)
CVSS7.8(High)
発見者Theori(Xint Code)
公開日2026年4月29日
対象コンポーネントLinuxカーネルのalgif_aeadサブシステム

⚡ なぜこれほど危険なのか?

🎯 速度

  • 即時エクスプロイト:root取得まで1秒未満
  • わずか732バイトのPythonスクリプト

👻 完全なステルス性

  • RAM(ページキャッシュ)のみを改変し、ディスクには書き込まない
  • ファイル整合性ツールでは検出不可
  • 再起動すると痕跡が消える(フォレンジック調査を無力化)

🌍 広範囲への影響

  • 事実上すべての最新ディストリビューションに影響
  • v4.14(2017年)からv7.0-rcまでのカーネル
  • 9年間検出されずに脆弱な状態が続いた

☁️ Cloud/Kubernetesにおけるリスク

  • コンテナからホストノードへのエスケープが可能
  • ページキャッシュはホストとコンテナ間で共有される
  • マルチテナント環境では重大な影響

🔍 技術的詳細

根本原因

2017年に導入された「インプレース(in-place)」最適化(commit 72548b093ee3)の欠陥。ローカルユーザーがカーネルのページキャッシュに対して4バイトの制御された書き込みを直接行える。

エクスプロイトの仕組み

  1. 攻撃者はAF_ALGインターフェースを使用してカーネルの暗号アルゴリズムにアクセス
  2. setuidバイナリ(/usr/bin/su)や機密ファイル(/etc/passwd)のメモリ上のバージョンを破壊
  3. 破損したバイナリを実行すると、rootシェルを取得

なぜ見逃されたのか

これはメモリオーバーフローではなく、設計上の論理バグ。検出には暗号サブシステムの深い分析が必要だった。


📊 影響を受けるシステム

✅ 確認済み

  • Ubuntu: 20.04、22.04、24.04 LTS
  • RHEL/AlmaLinux/Rocky Linux: すべての最新バージョン
  • Debian: カーネルv4.14+のすべてのバージョン
  • Amazon Linux 2023
  • SUSE: 最近のバージョン

🛡️ 修復計画

1️⃣ 恒久的な解決策:カーネルの更新

root@kitploit:~
# Ubuntu/Debian
sudo apt update
sudo apt upgrade
sudo reboot

# RHEL/AlmaLinux/Rocky
sudo dnf update kernel
sudo reboot

# カーネルバージョンの確認
uname -r

⚠️ 新しいカーネルを有効にするには再起動が必須です。


2️⃣ 緊急緩和策(即時の再起動なし)

Ubuntu/Debianの場合:

root@kitploit:~
# 脆弱なモジュールのロードを無効化
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/copyfail_mitigation.conf

# 使用中のモジュールをアンロード
sudo rmmod algif_aead

RHEL/AlmaLinuxの場合:

root@kitploit:~
# モジュールは通常カーネルに組み込まれている
# 無効化するブートパラメータを追加
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

# 変更を適用するために再起動
sudo reboot

3️⃣ キャッシュのクリア(過去のエクスプロイトが疑われる場合)

root@kitploit:~
# ページキャッシュをホットでパージ
sudo sysctl -w vm.drop_caches=3

⚠️ 注意: これはパッチの代替にはなりません。補助的な対策にすぎません。


📅 イベントの時系列

日付イベント
4月29日Theoriによる公開開示
5月1日最初の活発なエクスプロイト試行を検出
5月2日CISAが米国連邦機関に対し5月15日までのパッチ適用を命令

📦 パッチの状況


🔐 システムの確認

お使いのカーネルは脆弱ですか?

root@kitploit:~
# カーネルバージョンの取得
uname -r

# 脆弱な場合:
# - v4.14からv7.0-rc(2017年から2026年4月にリリース)
# - commit 72548b093ee3 を含む

# algif_aeadモジュールがロードされているか確認
lsmod | grep algif_aead

# リストに表示された場合、システムは脆弱

🧬 セキュリティ分析:AIファクター

最も破壊的な点:AIが1時間で発見

開発者が9年間見逃してきたこの欠陥を、AIが特定した。これは時代の転換点を示す:

  • 🤖 機械は人間よりも速くカーネルコードを監査できる
  • 🔍 複雑な論理的欠陥を自動的に発見
  • ⚠️ 0-day研究の未来への影響

Quick start

root@kitploit:~
# 1. 検出
python3 prueba.py
#   exit 0 = 脆弱ではない、2 = 脆弱、1 = テストエラー

# 2. エクスプロイト(対話型 — suが自分のパスワードを要求します)
python3 exploit.py --shell

検出器の使用方法

root@kitploit:~
python3 prueba.py

機能:

  1. AF_ALGとアルゴリズムauthencesn(hmac(sha256),cbc(aes))が 非特権プロセスからアクセス可能であることを確認します。

  2. 一時ディレクトリに4KiBのセンチネルファイルを作成し、ページ キャッシュを埋めます。

  3. sendmsg+cmsgでseqno_loをPWNDマーカーに設定して8バイトのAADを インラインで送信し、その後os.splice()でセンチネルのページキャッシュページから32バイトを AF_ALG操作ソケットにコピーします。

  4. recv()を呼び出して復号を開始します。認証チェックは EBADMSGで失敗しますが、一時的な書き込みは実行されます。

  5. ファイル(ディスクではなくページキャッシュ)を再度読み取り、マーカーを探します。

出力クラス:

  • 前提条件が満たされていません: AF_ALGまたはauthencesnが利用できません。終了コード0。
  • CVE-2026-31431に対して脆弱: PWNDマーカーが変更されたページに挿入されました。

終了コード2。

  • ページキャッシュがインプレースAEAD挿入パスで変更されました: ページへの書き込みは 発生しましたが、マーカーが期待される位置に挿入されませんでした。 脆弱として扱います。終了コード2。
  • ページキャッシュは無傷です: パッチ適用済み。終了コード0。

検出器は/usr/bin/su、/etc/passwd、または作成した一時ディレクトリ外の 他のファイルを決して変更せず、そのファイルは終了時に削除されます。

出力。 ## LPEの使用方法

root@kitploit:~
python3 exploit_cve_2026_31431.py # パッチのみ適用、次の手順を表示
python3 exploit_cve_2026_31431.py --shell # パッチを適用して`su <ユーザー>`を実行

機能:

  1. /etc/passwdで実行中ユーザーのUID行を検索し、4文字のUIDフィールドの バイトオフセットを見つけます。

  2. そのオフセットに対してwrite4を実行し、UIDを 0000に置き換えます。

  3. pwd.getpwnam(ユーザー)を呼び出して、libcがUID 0を報告することを確認します。

  4. --shellを使用すると、execvp("su", ["su", ユーザー])を実行します。自分の パスワードを入力してください。PAMは/etc/shadow(変更なし)に対して検証し、その後

setuid(getpwnam(user).pw_uid)が0に設定されます。

要件

  • 実行中のユーザーのUIDが4桁(1000〜9999)であること。1〜3桁のUIDは 複数回の書き込みが必要です。それに応じてwrite4を拡張してください。

  • NSSキャッシュデーモン(nscd、sssd、systemd-userdbd)が/etc/passwdの 読み取りをマスキングしていないこと。パッチ適用後にgetpwnamが実際のUIDを 返す場合は、再起動するかキャッシュを無視するか、別のユーザーを選択してください。

  • /etc/passwdページは、パッチ適用からsuの実行までの間、キャッシュに 残っている必要があります。実際には、通常のメモリプレッシャーのあるシステムでは これは信頼できます。

元に戻す

ディスク上の/etc/passwdファイルは変更されません。

ドライラン(--shellなしのexploit_cve_2026_31431.py)は、終了時に POSIX_FADV_DONTNEEDで破損したページを自動的に削除するため、UID → 名前の ルックアップはすぐに正常に戻ります。

--shellを使用した後は、ページがクリアされるまで破損したままになります。 破損している間は、UID 1000 → 名前を解決する操作(例:ls、 ファイルマネージャー、scp/sftpの所有権チェック)は失敗するか、数値IDを表示します。クリアするには:

root@kitploit:~
# 非特権:/etc/passwdのページキャッシュ削除を要求:
python3 -c "import os; fd=os.open('/etc/passwd', os.O_RDONLY); \
os.posix_fadvise(fd, 0, 0, os.POSIX_FADV_DONTNEED); os.close(fd)"

# rootコンソールから:
echo 3 > /proc/sys/vm/drop_caches

再起動でもクリアされます。

write4の仕組み

root@kitploit:~
sendmsg([8バイトのAAD], cmsg=[ALG_SET_OP=DECRYPT, ALG_SET_IV, ALG_SET_AEAD_ASSOCLEN=8],
flags=MSG_MORE)
splice(target_fd, pipe_w, 32, offset_src=file_offset)
splice(pipe_r, op_fd, 32)
recv(op_fd) # EBADMSG; 一時的な書き込みはすでに実行済み

AADの位置4〜7の4バイト(seqno_lo)は、authencesnによって 宛先のスキャッタリストに書き込まれます。このコードパスでは、 これはtarget_fdから抽出したページキャッシュページです。ページ内の着地オフセットは、 splice()に渡したoffset_srcに対応します。

緩和策

パッチ適用済みカーネルがディストリビューションに届くまで:

root@kitploit:~
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null

パッチ適用後、test_cve_2026_31431.pyは「前提条件が満たされていません」という メッセージを表示し、終了コード0で終了するはずです。

元の修正は、AEADインプレース操作をアウトオブプレース操作に戻し、 ページキャッシュページを変更可能なスキャッタリストから遠ざけます。

📚 公式リファレンス

  • CVE-2026-31431 - NVD
  • Copy Fail Patches - AlmaLinux
  • Sysdig Security Research
  • CISA Alert

⚠️ 最終推奨事項

  1. 最優先: 2026年5月15日までにカーネルを更新(CISAの命令)
  2. 再起動できない場合: algif_aeadを無効化する一時的な緩和策を適用
  3. Cloud/Kubernetesの場合: ノードが直ちにパッチ適用されているか確認
  4. 監視: 監査ログでalgif_aeadモジュールのロード試行を確認

最終更新: 2026年5月3日
ステータス: 🔴 重大 - 即時の対応が必要

ツールをダウンロード
5月3日Ubuntu、RHEL、AlmaLinux、Debianでパッチが利用可能に
ディストリビューションステータス参照
Ubuntu✅ パッチ適用済みUSN-8226-1(20.04、22.04、24.04)
RHEL/AlmaLinux/Rocky✅ 利用可能5月1日以降
Debian✅ セキュリティリポジトリにありアップデート利用可能
Android⏳ 近日公開2026年6月のセキュリティ速報