
CVE-2026-31431에 대한 PoC 익스플로잇으로, authencesn 페이지 캐시 쓰기를 통한 Linux 커널 LPE이며, 2017년 이후 대부분의 배포판에서 비특권 사용자가 루트로 권한 상승할 수 있게 합니다.
Copy Fail은 Linux 커널의 crypto 서브시스템에 존재하는 로직 버그입니다(CVE-2026-31431). 2017년 algif_aead.c에 적용된 최적화로 인해 페이지 캐시 페이지가 실수로 쓰기 가능한 scatterlist에 포함되었습니다. authencesn AEAD 알고리즘은 복호화 중 출력 경계를 4바이트 초과하여 스크래치 바이트를 쓰는데, 이는 in-place scatterlist를 통해 공격자가 splice한 모든 파일의 커널 캐시 복사본에 직접 기록됩니다. 이를 통해 권한이 없는 로컬 사용자가 읽기 가능한 모든 파일의 페이지 캐시에 통제된 4바이트 쓰기를 수행할 수 있으며, setuid 바이너리를 손상시켜 손쉽게 root 권한으로 승격할 수 있습니다.
이 저장소에는 Ubuntu 24.04 LTS(커널 6.8.0-1012-aws)에서 검증된 깔끔하고 읽기 쉬운 C 및 Python PoC 익스플로잇이 포함되어 있습니다.
$ ./copy_fail
# id
uid=0(root) gid=1000(user) groups=1000(user)
zyenra.com에서 전체 분석 및 익스플로잇 해설 읽기
git clone https://github.com/rvizx/CVE-2026-31431.git
cd CVE-2026-31431
python3 copy_fail.py
git clone https://github.com/rvizx/CVE-2026-31431.git
cd CVE-2026-31431
gcc -o copy_fail copy_fail.c
./copy_fail
승인된 보안 테스트 및 연구 목적으로만 사용하십시오. 소유하지 않았거나 서면 허가를 받지 않은 시스템에서 실행하지 마십시오. 이 익스플로잇은 setuid 바이너리의 페이지 캐시를 수정하며, 결과적으로 얻어지는 root 셸은 실제 권한입니다.
Ravindu Wickramasinghe (@rvz) - Zyenra Security