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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
copy-fail-go — Go版のCVE-2026-31431(copy-fail)Linuxカーネル権限昇格PoCで、自動SUIDバイナリ列挙と対話型ターゲット選択を備えています。 | Kitploit
ツール/GitHubGitHub/3jee/copy-fail-go
特権昇格エクスプロイトフレームワーク脆弱性分析エクスプロイトCTFペネトレーションテストレッドチーミングバイナリエクスプロイト
GitHub3jee/copy-fail-go

copy-fail-go

Go版のCVE-2026-31431(copy-fail)Linuxカーネル権限昇格PoCで、自動SUIDバイナリ列挙と対話型ターゲット選択を備えています。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

copy-fail-go

grenkoca氏のPython PoCをGoに移植したもので、CVE-2026-31431(copy-fail)に対応しています。

このバージョンは、ランタイム依存関係がゼロの完全な静的バイナリにコンパイルされます。Pythonもpipもlibcのバージョン制約も不要です。任意のLinuxターゲットに配置して実行するだけです。また、ターゲット上のすべてのSUIDワールドリーダブルバイナリを自動的に列挙し、対話形式でどのバイナリを悪用するかを選択できます。

認可されたセキュリティ研究およびCTF用途に限ります。


CVE-2026-31431(copy-fail)とは?

Theoriによって発見され、2026年4月29日に公開されたCopy.Failは、2017年の最適化で導入されたLinuxカーネルのalgif_aead暗号モジュールにおける論理的な欠陥です。2017年以降のすべての主要なLinuxディストリビューションに影響します。

カーネルのAF_ALG暗号インターフェースを操作することで、特権のない攻撃者が制御したデータをLinuxのページキャッシュ(信頼されたシステムバイナリのメモリ内表現)に直接書き込むことができます。これにより、/usr/bin/suなどのバイナリをディスク上のファイルを変更せずに一時的に乗っ取ることができ、ディスクベースのフォレンジックでは攻撃を検知できません。

レース条件やカーネルアドレスの漏洩に依存する多くのLPE脆弱性とは異なり、Copy.Failは非常に信頼性が高く、標準的なユーザーアカウントだけで一貫して動作します。

影響:

  • 通常ユーザー → 影響を受けるシステム上でroot権限を取得
  • コンテナエスケープによるホストへの侵入
  • CI/CDジョブがランナーをroot化
  • 共有/マルチテナントインフラがテナント間で侵害される
  • ディスク上のファイル変更なし(整合性チェックを回避)

影響を受けるカーネル: 2017年以降のすべてのディストリビューション。具体的なバージョン範囲についてはgrenkoca氏のオリジナルPoCを参照してください。


オリジナルのPython PoCとの違い


要件

  • 影響を受けるバージョン範囲のLinuxカーネル
  • ターゲット上にSUIDワールドリーダブルバイナリが存在すること(ツールが自動的に検出します)
  • 実行に特別な権限は不要

ビルド依存関係(ビルドマシン上)

ツールバージョン
Go1.21+

ビルド

ネイティブLinuxビルド

root@kitploit:~
git clone https://github.com/3jee/copy-fail-go
cd copy-fail-go
go build -o copy-fail .

macOSまたはWindowsからのクロスコンパイル(Linux x86-64向け)

root@kitploit:~
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o copy-fail .

-s -wフラグはデバッグ情報を削除してバイナリサイズを小さくします。CGO_ENABLED=0はlibc依存のない完全な静的バイナリを生成します。glibcのバージョンに関係なく、任意のLinuxターゲットに配置できます。

その他のアーキテクチャ

ターゲットコマンド
Linux ARM64GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o copy-fail .
Linux 32-bit x86GOOS=linux GOARCH=386 CGO_ENABLED=0 go build -o copy-fail .

使用方法

バイナリをターゲットに転送して実行します(root権限は不要です):

root@kitploit:~
./copy-fail

実行例:

root@kitploit:~
CVE-2026-31431 (copy-fail) - Go PoC
Based on grenkoca's original PoC

Scanning for SUID world-readable binaries...

SUID world-readable binaries found:
------------------------------------
  [1] /usr/bin/su
  [2] /usr/bin/sudo
  [3] /usr/bin/passwd
  [4] /usr/bin/newgrp

Select target [1-4]: 1

[*] Targeting: /usr/bin/su
[*] Writing 48 bytes to /usr/bin/su...
[+] Write complete. Executing target...
# whoami
root

動作の仕組み

  1. ターゲットのSUIDバイナリをO_RDONLYで開きます。書き込み権限は不要です。
  2. authencesn(hmac(sha256),cbc(aes)) AEADトランスフォームにバインドされたAF_ALG(SOCK_SEQPACKET)ソケットを作成します。
  3. MSG_MOREとSOL_ALG制御メッセージを含む細工されたsendmsgを送信し、ターゲットファイルのページキャッシュエントリに対する暗号操作をキューに入れます。
  4. splice(2)を使用してファイルからALGソケットへページを移動し、ファイル権限を再チェックせずに変更されたページキャッシュページを書き戻す脆弱なカーネルパスをトリガーします。
  5. ペイロードの4バイトチャンクごとに繰り返します。
  6. パッチ適用済みバイナリを実行します。

クレジット

  • grenkoca - オリジナルPython PoC
  • Theori - 脆弱性の発見
  • このリポジトリは、自動ターゲット列挙機能を備えた非縮小のGo移植版です

参考リンク

  • OVHcloud: Copy.Fail - How to Rapidly Protect MKS Clusters from the Linux Kernel Zero-Day
  • grenkoca氏のオリジナルPython PoC(gist)
ツールをダウンロード
オリジナル(Python)このリポジトリ(Go)
言語Python 3Go 1.21+
ターゲット/usr/bin/suにハードコードライブファイルシステムスキャンから自動検出
ターゲット選択なし対話形式の番号付きメニュー
配布形態スクリプト単一の静的バイナリ(ランタイム依存なし)