
# CVE-2026-31431 방어 연구 저장소 AF_ALG, splice(), authencesn을 통한 페이지 캐시 손상으로 발생하는 Linux 커널 로컬 권한 상승 취약점에 대한 방어 연구 저장소입니다. 기술 분석, 탐지 전략, 완화 조치를 포함합니다.
**Copy Fail (CVE-2026-31431)**은 AF_ALG, splice(), authencesn 메커니즘을 통한 page cache의 제어된 손상을 이용하여 리눅스 커널에 영향을 미치는 로컬 권한 상승(LPE) 유형의 취약점입니다.
이 저장소의 목적은 다음과 같습니다:
⚠️ 이 프로젝트는 엄격히 교육적·방어적 목적이며 보안 연구를 위한 것입니다.
이 저장소에 제시된 모든 데모는 격리되고 통제된 실험실 환경에서 수행되었습니다.
명시적 허가 없이 타사 시스템에서의 사용은 허용되지 않습니다.
| 특징 | 세부 사항 |
|---|---|
| 레이스 컨디션 없음 | 결정적(deterministic) 악용 |
| 디스크 수정 없음 | 탐지 어려움 |
| 미니멀한 익스플로잇 | 표준 Python만 사용 |
| 컨테이너 영향 | Kubernetes / VPS / 공유 호스팅 |
다음과 비교 가능:
User Space
↓
AF_ALG Socket
↓
splice()
↓
Page Cache Reference
↓
authencesn In-Place Write
↓
Controlled 4-Byte Overwrite
↓
execve()
↓
Privilege Escalation
2011 → authencesn ajouté au kernel
2015 → AF_ALG reçoit le support AEAD + splice()
2017 → Optimisation in-place dans algif_aead.c
2026 → Découverte et correctif officiel
AF_ALG리눅스 커널의 암호화 프리미티브를 userspace에 노출하는 소켓 인터페이스.
splice()파일 디스크립터 간 페이지를 복사 없이 전송할 수 있게 하는 메커니즘.
authencesn대상(destination) 버퍼를 임시 작업 공간으로 사용하는 AEAD IPsec ESN 템플릿.
algif_aead.c에 도입된 최적화는 sg_chain()을 통해 page cache 페이지를 대상 scatterlist에 직접 연결(chaining)할 수 있게 했습니다.
Input SGL: AAD || Ciphertext || Tag (page cache)
↑
Output SGL: AAD || Ciphertext ------+
authencesn은 그런 다음 대상 파일의 page cache 페이지에 직접 씁니다.
| 프리미티브 | 제어 |
|---|---|
| 대상 파일 | 읽을 수 있는 모든 파일 |
| 오프셋 | splice를 통해 제어 |
| 쓰기 값 | 필드 |
| 배포판 |
|---|
⚠️ 격리된 테스트 환경 전용입니다.
uname -r
lsmod | grep algif_aead
python3 --version
git clone https://github.com/theori-io/copy-fail-CVE-2026-31431.git
cd copy-fail-CVE-2026-31431
python3 copy_fail_exp.py
auditctl -a always,exit -F arch=b64 -S socket -F a0=38 -k af_alg_socket
auditctl -a always,exit -F arch=b64 -S splice -k splice_monitor
ps aux | awk '$1 == "root"'
ss -tlnp
algif_aead 비활성화echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead
{
"defaultAction": "SCMP_ACT_ALLOW",
"syscalls": [
{
"names": ["socket"],
"action": "SCMP_ACT_ERRNO",
"args": [
{ "index": 0, "value": 38, "op": "SCMP_CMP_EQ" }
]
}
]
}
a664bf3d603d 패치는 algif_aead.c의 취약한 in-place 연산을 제거합니다.
sudo apt update && sudo apt upgrade
sudo reboot
| 날짜 | 이벤트 |
|---|---|
| 2017 | 취약점 도입 |
| 2026-03-23 | 커널 보안 팀에 신고 |
| 2026-04-01 | 패치 통합 |
| 2026-04-29 | 대중 공개 |
linux kernel security, CVE-2026-31431, copy fail, page cache, AF_ALG, authencesn, linux LPE, kernel exploit, linux hardening, security research, dirty pipe, kernel mitigation
이 저장소는 다음 용도로만 사용됩니다:
허가되지 않은 사용은 불법입니다.
🛡️ 인식 제고 • 완화 • 방어적 연구
🔁 사이버보안 커뮤니티와 프로젝트를 공유하세요
⭐ 리눅스 보안 연구를 지원하세요
| 요소 | 값 |
|---|
| 유형 | 로컬 권한 상승 |
| 영향 | 로컬 루트 |
| 구성 요소 | Linux 커널 |
| 하위 시스템 | AF_ALG / authencesn |
| 프리미티브 | page cache에 대한 제어된 쓰기 |
| 조건 | 비특권 사용자 |
| 은닉성 | 디스크 파일 온전함 |
| 심각도 | 치명적 |
| 넓은 영향 범위 | 2017년부터 취약한 커널 |
seqno_lo| 지속성 | 메모리 전용 |
| 디스크 탐지 | 불가능 |
| 커널 |
|---|
| 상태 |
|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ 취약 |
| Amazon Linux 2023 | 6.18.8-9.213 | ✅ 취약 |
| RHEL 10.1 | 6.12.0 | ✅ 취약 |
| SUSE 16 | 6.12.0 | ✅ 취약 |
| 리소스 | 설명 |
|---|
| Dirty Pipe | CVE-2022-0847 |
| Linux Kernel Docs | 공식 문서 |
| Openwall Security | 보안 메일링 리스트 |
| LWN.net | 리눅스 커널 분석 |
| AF_ALG Documentation | Crypto API |
| XFRM / IPsec | 관련 하위 시스템 |