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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-31431 — Linux 向けローカル権限昇格エクスプロイト。CVE-2026-31431 を悪用し、AF_ALG 暗号 API を splice() と組み合わせてページキャッシュを改ざんし、root シェルを起動します。 | Kitploit
ツール/GitHubGitHub/vyahello/cve-2026-31431
特権昇格エクスプロイトフレームワーク脆弱性分析エクスプロイトペネトレーションテストバイナリエクスプロイト
GitHubvyahello/cve-2026-31431

CVE-2026-31431

Linux 向けローカル権限昇格エクスプロイト。CVE-2026-31431 を悪用し、AF_ALG 暗号 API を splice() と組み合わせてページキャッシュを改ざんし、root シェルを起動します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Copy Fail - CVE-2026-31431

このリポジトリには、CVE-2026-31431(別名「Copy Fail」)に対するLinuxローカル権限昇格PoCが含まれています。

このエクスプロイトは、AF_ALGユーザースペース暗号APIにおけるLinuxカーネルのalgif_aeadパスを標的としています。AF_ALGとsplice()を組み合わせて使用し、カーネルに/usr/bin/suのページキャッシュへ4バイト単位で書き込ませた後、ページキャッシュが変更された状態でsuを実行します。

ソースコード概要

copy_fail_exp.py内のPoCは4つの処理を行います:

  1. トランスフォームauthencesn(hmac(sha256),cbc(aes))を使用してaead用のAF_ALGソケットを開きます。
  2. 元の概念実証で使用されたものと同じsetsockopt()値でリクエストを設定します。
  3. 2回のsplice()呼び出しを使用して、ターゲットファイルからAF_ALGリクエストパス(バグのあるカーネルパス)へデータを移動します。
  4. 160バイトの埋め込みペイロードを解凍し、4バイト単位でターゲットファイルに書き込みます。ペイロードは/bin/shを含むELFスタブです。

zlibブロブはランダムデータではありません。これは/usr/bin/suの先頭部分をページキャッシュ内で置き換え、次回のsu実行時にルートシェルが起動するようにするためのコンパクトなペイロードです。

影響を受けるバージョン

脆弱なコードはLinuxカーネル4.14時代のalgif_aead変更で導入され、インプレース最適化を元に戻すアップストリーム修正が適用されるまで存在し続けました。

広い範囲

  • 2017年以降にビルドされ、脆弱なalgif_aeadインプレースパスを含むLinuxカーネル。
  • その期間にカーネルを出荷し、まだ修正をバックポートしていない主要なディストリビューションのほとんど。
  • AF_ALG暗号APIが有効なシステム(ほとんどの汎用Linuxディストリビューションではデフォルトで有効)。

テスト済み / 公開検証済み

ディストリビューションカーネル
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.1

アップストリーム修正ポイント

  • 6.18.22
  • 6.19.12
  • 7.0

ダウンストリームのLTSブランチは、ベンダーのバックポートが実際に実行しているカーネルパッケージに適用された後にのみ安全です。

再現

所有しているラボ用VMまたはコンテナホストを使用してください。本番システムでは実行しないでください。

  1. 脆弱なカーネルでシステムを起動します。
  2. /usr/bin/suが存在し、setuid-rootであることを確認します。
  3. PoCを実行します:
root@kitploit:~
python3 copy_fail_exp.py
  1. エクスプロイトが成功した場合、スクリプトは/usr/bin/suをパッチし、その後suを呼び出します。環境に応じて、ルートシェルまたはルートプロンプトが表示されます。

実行

このスクリプトには、Python 3標準ライブラリ以外の追加依存関係はありません。

root@kitploit:~
python3 copy_fail_exp.py

ターゲットを事前に検査したい場合、スクリプトは現在デフォルトで/usr/bin/suを使用します。

修正の適用

ダウンストリームカーネルを保守している場合、正しい修正方法は、インプレースAEAD最適化を削除するアップストリームのリバートをバックポートすることです:

  • アップストリーム修正コミット:a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
  • この修正は、以前の72548b093ee3インプレース変更をほぼ元に戻します。

ダウンストリームカーネルツリーでの推奨ワークフロー:

root@kitploit:~
git cherry-pick a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
make olddefconfig
make -j"$(nproc)"
make modules_install
make install
reboot

自分でカーネルを再ビルドしない場合は、バックポートを含むベンダーカーネルパッケージをインストールし、それで再起動してください。

暫定緩和策

パッチ適用が遅れる場合、一時的な措置としてモジュールパスを無効にします:

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

これは緩和策であり、修正ではありません。

注意事項

  • PoCは意図的に小さく、決定的に動作します。
  • エクスプロイトはローカルのみですが、ホストのページキャッシュが共有されるため、共有ホスト、CIランナー、Kubernetesノード、コンテナプラットフォームでは影響が大きくなります。
  • このカーネルバグは競合状態ではなく論理エラーであるため、脆弱なコードが存在すればエクスプロイトパスは確実に動作します。
ツールをダウンロード
6.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default