
Linux 커널의 authencesn 템플릿에서 AF_ALG 및 splice()를 통한 로컬 권한 상승 취약점에 대한 문서화 및 분석으로, 영향을 받는 버전, 탐지 및 완화 방법을 포함합니다.
Linux 커널의
authencesn암호화 템플릿에서AF_ALG+splice()를 통한 로컬 권한 상승(Local Privilege Escalation) 취약점.
2026년 4월 29일 Theori(Xint Code)가 공개.
| 필드 | 세부 정보 |
|---|---|
| CVE | CVE-2026-31431 |
| 별칭 | Copy Fail |
| CVSS | 7.8 HIGH |
| 유형 | 로컬 권한 상승(LPE) |
| 도입 시점 | Linux 커널 4.14 (2017, 커밋 72548b093ee3) |
| 수정 시점 | 메인라인 커밋 a664bf3d603d |
| 요구 사항 | 로컬 비특권 셸 접근 |
| 원격 벡터 | 없음 — 로컬 전용 |
커널의 authencesn AEAD 래퍼의 논리적 결함으로 인해, 비특권 로컬 사용자가 시스템의 읽기 가능한 모든 파일의 페이지 캐시에 결정적이고 통제된 4바이트 쓰기를 수행할 수 있습니다 — /usr/bin/su와 같은 setuid 바이너리도 포함됩니다.
근본 원인은 페이지 캐시 페이지를 쓰기 가능한 scatterlist에 배치한 2017년의 제자리(in-place) 처리 최적화입니다. authencesn 알고리즘은 Extended Sequence Number 재배열 중 의도된 출력 영역 밖에 4바이트의 스크래치 데이터를 씁니다. 최적화로 도입된 scatterlist 구조 때문에 이 4바이트는 splice()를 통해 전달된 파일의 페이지 캐시에 기록되며, 파일 권한을 완전히 우회합니다.
레이스 컨디션 없음. 재시도 없음. 크래시 위험 없음. 테스트된 모든 배포판에서 결정적으로 동작.
취약: Linux 커널 4.14부터 6.18.21까지, 그리고 6.19.12 이전의 6.19.x.
이 범위의 커널을 제공하는 모든 주요 배포판이 영향을 받습니다:
| 배포판 | 테스트 버전 |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |
영향 없음: Ubuntu 26.04(Resolute) 이상.
2017년 제자리 최적화를 되돌리는 메인라인 커밋 a664bf3d603d가 포함된 커널로 업데이트하세요.
# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y && sudo reboot
# RHEL / AlmaLinux / Amazon Linux
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot
# SUSE
sudo zypper refresh && sudo zypper update kernel-default && sudo reboot
algif_aead 비활성화 (임시)즉시 패치가 불가능한 경우, 취약한 모듈을 비활성화하여 공격 표면을 차단하세요.
RHEL 계열 시스템 참고: RHEL/AlmaLinux/CentOS에서는
algif_aead가 커널에 내장되어 있습니다(CONFIG_CRYPTO_USER_API_AEAD=y).modprobe.d우회 방법은 이 시스템에서 동작하지 않습니다. 대신initcall_blacklist방법을 사용하세요.
Debian/Ubuntu (모듈 로드 가능):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead 2>/dev/null || true
RHEL 계열 (커널 내장 — 재부팅 필요):
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
sudo reboot
재부팅 후 확인:
grep initcall_blacklist /proc/cmdline
신뢰할 수 없는 워크로드(컨테이너, CI 러너, 샌드박스 환경)의 경우, 패치 상태와 관계없이 seccomp 정책을 통해 AF_ALG 소켓 생성을 차단하세요. 이는 취약한 커널에서도 공격 표면을 제한합니다.
algif_aead가 현재 로드되었거나 사용 중인지 확인하세요:
# 모듈이 로드되었는지 확인
lsmod | grep algif_aead
# AF_ALG 소켓을 연 프로세스가 있는지 확인
lsof | grep AF_ALG
ss -xa | grep alg
런타임 탐지 시그니처는 Sysdig Secure에서 제공됩니다(규칙: AF_ALG Page Cache Poisoning Leading to Privilege Escalation).
xD The Watcher — Red Teamer, Ethical Hacker & AI Security Researcher
GitHub: @xd20111
블로그: yourhacker
이 저장소는 연구 및 방어 목적으로 취약점을 문서화합니다. 권위 있는 기술 분석과 공식 PoC는 위에 링크된 Theori의 공개 자료를 참조하세요.
위협 모델에 공유 커널 멀티 테넌시(공유 호스트의 컨테이너, CI 러너, 빌드 팜)가 포함된 경우, 패치가 적용될 때까지 격리 경계가 실질적으로 약화됩니다. 네임스페이스 경계가 아닌 하드웨어 또는 VM 수준의 격리가 올바른 대응입니다.
| Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) |
|---|
| 레이스 컨디션 필요 | 예 | 부분적 | 아니오 |
| 버전 특이적 | 예 | 예 | 아니오 |
| 신뢰성 | 불안정 | 보통 | 결정적 |
| 배포판 지원 범위 | 제한적 | 제한적 | 2017년 이후 전부 |
| 구성 요소 | 영향 |
|---|
| dm-crypt / LUKS | ✅ 영향 없음 |
| SSH | ✅ 영향 없음 |
| IPsec / XFRM | ✅ 영향 없음 |
| kTLS / 커널 내부 TLS | ✅ 영향 없음 |
| OpenSSL / GnuTLS / NSS (기본 빌드) | ✅ 영향 없음 |
afalg 엔진을 명시적으로 활성화한 OpenSSL | ⚠️ 사용자 공간 암호화로 대체됨 |
aead/skcipher/hash AF_ALG 소켓을 직접 바인딩하는 애플리케이션 | ⚠️ 중단됨 — lsof | grep AF_ALG로 확인 |
| 리소스 | 링크 |
|---|
| 날짜 | 이벤트 |
|---|
| 2017 | 커밋 72548b093ee3을 통해 회귀(Regression) 도입 |
| 2026년 4월 초 | 업스트림 수정 병합(커밋 a664bf3d603d) |
| 2026년 4월 29일 | Theori / Xint Code의 공개 공개 |
| 2026년 4월 30일 | 배포판 패치 배포 시작 |
| 2026년 5월 1일 | AlmaLinux 패치 커널이 프로덕션 저장소에 배포 |