
Copy Fail (CVE-2026-31431)는 Linux 커널의 algif_aead 모듈(AF_ALG 사용자 공간 암호화 API의 일부)에 존재하는 논리 결함입니다. 2026년 4월 29일 Theori / Xint Code에 의해 공개되었습니다.
Copy Fail Linux 커널 로컬 권한 상승 취약점을 위한 읽기 전용 탐지 스크립트입니다.
익스플로잇 코드가 없습니다. AF_ALG 소켓을 열지 않습니다./etc/modprobe.d외부에 파일을 쓰지 않습니다(수동으로 완화 조치를 적용할 때만).
Copy Fail(CVE-2026-31431)은 Linux 커널의 algif_aead 모듈(AF_ALG 사용자 공간 암호화 API의 일부)에 있는 논리적 결함입니다. 2026년 4월 29일 Theori / Xint Code에 의해 공개되었습니다.
732바이트 Python 스크립트 하나로 2017년 이후 빌드된 사실상 모든 주요 Linux 배포판에서 권한이 없는 로컬 사용자가 전체 루트 액세스 권한을 얻을 수 있습니다 — 경쟁 조건(race condition), 커널 오프셋, 컴파일된 페이로드 없이 말이죠.
| 속성 | 세부 정보 |
|---|---|
| CVE | CVE-2026-31431 |
| CVSS | 7.8 HIGH |
| 유형 | 로컬 권한 상승(LPE) |
| 영향받는 커널 | 4.14 – 6.18.21, 6.19.0 – 6.19.11 |
| 근본 원인 | algif_aead 제자리(in-place) 최적화(커밋 72548b093ee3, 2017) |
| 업스트림 수정 | 커밋 a664bf3d603d를 통한 되돌리기 |
| 익스플로잇 신뢰성 | 결정적(Deterministic) — 경쟁 조건 불필요 |
modprobe.d 블랙리스트, initcall_blacklist 커널 cmdline 매개변수kmod 패키지 버전 확인Ubuntu / Debian 참고 사항: Ubuntu는 보안 패치를 백포트할 때 업스트림 커널 버전을 올리지 않습니다. 따라서 스크립트는 커널 버전 문자열에만 의존하지 않고
kmod패키지 버전(>= 31+20240202-2ubuntu7.2, USN-8226-1 기준)을 확인합니다.
# 다운로드
curl -O https://raw.githubusercontent.com/kw-soft/copyfail/main/copyfail.sh
# 실행 권한 부여
chmod +x copyfail.sh
# 실행(전체 모듈 가시성을 위해 root 권장)
sudo ./copyfail.sh
============================================
CVE-2026-31431 'Copy Fail' — 안전 탐지
============================================
[*] 커널: 6.8.0-71-generic
[!] 커널 6.8.0-71-generic이 취약한 업스트림 범위(4.14 – 6.19.11)에 속함
[~] 배포판 백포트 확인이 이어집니다 — 버전 번호만으로는 결론을 내릴 수 없음
[*] algif_aead 모듈 상태:
[!] algif_aead가 로드됨 — 공격 표면이 활성 상태
[*] 배포판 패치 상태:
배포판 : Ubuntu 24.04
설치된 kmod : 31+20240202-2ubuntu6
필요한 kmod : >= 31+20240202-2ubuntu7.2
[!] kmod 31+20240202-2ubuntu6 < 31+20240202-2ubuntu7.2 — 완화 조치가 적용되지 않음
============================================
결과
============================================
[!] 취약함 — 커널이 영향받고 algif_aead가 활성 상태
============================================
CVE-2026-31431 'Copy Fail' — 안전 탐지
============================================
[*] 커널: 6.8.0-71-generic
[!] 커널 6.8.0-71-generic이 취약한 업스트림 범위(4.14 – 6.19.11)에 속함
[~] 배포판 백포트 확인이 이어집니다 — 버전 번호만으로는 결론을 내릴 수 없음
[*] algif_aead 모듈 상태:
[✓] algif_aead가 로드되지 않음
[✓] modprobe 블랙리스트 활성: /etc/modprobe.d/disable-algif_aead.conf
[*] 배포판 패치 상태:
배포판 : Ubuntu 24.04
설치된 kmod : 31+20240202-2ubuntu7.2
필요한 kmod : >= 31+20240202-2ubuntu7.2
[✓] kmod >= 31+20240202-2ubuntu7.2 — USN-8226-1 완화 조치 적용됨
============================================
결과
============================================
[✓] 완화됨 — algif_aead가 차단됨
[~] 문제를 완전히 해결하려면 패치된 커널이 제공될 때 적용하세요
sudo apt update && sudo apt upgrade && sudo reboot
이 명령은 algif_aead를 차단하는 modprobe.d 규칙을 추가하는 패치된 kmod 패키지(USN-8226-1)를 설치합니다.
즉시 재부팅이 불가능한 경우:
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif.conf
sudo update-initramfs -u
sudo rmmod algif_aead 2>/dev/null || echo "모듈이 사용 중 — 재부팅 필요"
⚠️ RHEL 계열 커널에서
algif_aead는 커널에 내장되어 있습니다(CONFIG_CRYPTO_USER_API_AEAD=y).
modprobe.d규칙은 효과가 없습니다. 대신 grub 매개변수를 사용하세요:
sudo grubby --update-kernel=ALL --args='initcall_blacklist=algif_aead_init'
sudo reboot
sudo pacman -Syu linux && sudo reboot
완화 조치는 다음 항목에 영향을 미치지 않습니다:
dm-crypt / LUKS 전체 디스크 암호화afalg 엔진을 명시적으로 사용하도록 구성된 애플리케이션이나 AF_ALG AEAD 소켓을 직접 바인딩하는 애플리케이션만 영향을 받을 수 있습니다 — 표준 배포에서는 드문 경우입니다.
Hetzner는 OS 업데이트를 자동으로 적용하지 않습니다. Ubuntu에는 unattended-upgrades가 사전 설치되어 있지만, 활성화 및 구성이 필요합니다.
# 자동 보안 업데이트가 활성화되어 있는지 확인
cat /etc/apt/apt.conf.d/20auto-upgrades
# 업그레이드 기록 보기
grep "^Start-Date\|^Commandline" /var/log/apt/history.log | tail -30
# kmod 완화 조치가 자동으로 적용되었는지 확인
grep "kmod\|algif" /var/log/apt/history.log
# 마지막 unattended-upgrades 실행 확인
tail -30 /var/log/unattended-upgrades/unattended-upgrades.log
참고:
unattended-upgrades가 활성화되어 있어도 자동 재부팅은 기본적으로 꺼져 있습니다.
새 커널은 수동으로reboot한 후에만 활성화됩니다.
이 스크립트는 귀하가 소유하거나 테스트 권한이 있는 시스템에서 사용하도록 제작되었습니다.
읽기 전용 검사를 수행하며 어떤 방식으로도 취약점을 악용하지 않습니다.
| 배포판 | 확인 방법 |
|---|
| Ubuntu / Linux Mint | kmod 패키지 버전(USN-8226-1) |
| Debian | kmod 패키지 버전 + 보안 추적기 |
| Parrot OS | kmod 패키지 버전(Debian rolling) |
| RHEL / CentOS / AlmaLinux / Rocky | dnf updateinfo + initcall_blacklist cmdline |
| Fedora | dnf updateinfo |
| Amazon Linux | dnf check-update --security |
| SUSE / openSUSE | zypper lp |
| Arch Linux | pacman -Syu linux |
| 리소스 | 링크 |
|---|