Dirty COW → Dirty Pipe → Copy Fail → Dirty Frag로 이어진 페이지 캐시 변조 계보
📌 또 너냐 Linux 커널 — 페이지 캐시 변조 시리즈의 새 챕터
2026년 5월 7일, Linux 보안 메일링 리스트(oss-security)에 한 줄짜리 PoC가 올라왔습니다. 한국 보안 연구자 김현우(@v4bel)가 발견한 신종 권한 상승 취약점, Dirty Frag입니다. CVSS 3.1 기준 7.8점(High). 비권한 일반 사용자가 한 줄 명령어로 root를 가져갑니다.
🪈 Dirty Pipe (2022, CVE-2022-0847) — 파이프(pipe)로 읽기 전용 파일 덮어쓰기
❌ Copy Fail (2026, CVE-2026-31431) — 불과 일주일 전에 공개된 같은 계열 취약점
그리고 이번이 Dirty Frag입니다. 별칭은 "Copy Fail 2: Electric Boogaloo". 농담이 아니라 진짜 그렇게 부릅니다.
🔍 Dirty Frag, 정확히 무엇인가
Dirty Frag는 두 개의 별개 커널 결함을 엮은 익스플로잇 체인입니다.
결함 1: xfrm-ESP Page-Cache Write (CVE-2026-43284)
위치: IPsec(VPN에 쓰이는 그것)의 ESP(Encapsulating Security Protocol) 처리 모듈
도입: 2017년 1월 17일 커밋
트리거 조건: 비권한 사용자가 namespace를 생성할 수 있어야 함
우분투에서는 AppArmor가 namespace 생성을 막아 단독으로는 통하지 않음
결함 2: RxRPC Page-Cache Write (CVE-2026-43500)
위치: AFS(분산 파일 시스템)에서 쓰이는 RxRPC 프로토콜 모듈
도입: 2023년 6월 커밋
트리거 조건: namespace 권한 불필요. 다만 rxrpc.ko 모듈 자체가 일부 배포판엔 빠져 있음
이 둘을 합쳐 쓴다는 것이 Dirty Frag의 핵심입니다. ESP가 막히면 RxRPC로, RxRPC가 빠지면 ESP로 — 환경에 따라 한쪽으로 우회합니다. algif_aead 블랙리스트로 막은 Copy Fail 완화책이 적용된 시스템에서도 Dirty Frag는 여전히 통합니다.
무엇을 하는가: 페이지 캐시 덮어쓰기
Linux는 디스크에서 읽은 파일 내용을 RAM의 페이지 캐시(page cache) 에 둡니다. 같은 파일을 자주 읽는 부담을 덜기 위함이지요. 그런데 이 페이지 캐시는 보호된 메모리 입니다. 일반 사용자가 함부로 쓸 수 없습니다.
Dirty Frag는 esp4, esp6, rxrpc가 페이지 버퍼를 '제자리에서(in-place) 복호화'하는 코드 경로를 노립니다. splice(2)나 sendfile(2)로 들어온 파이프 페이지가 그대로 소켓까지 도달하면, 비권한 프로세스가 그 평문 페이지에 대한 참조를 계속 들고 있을 수 있게 됩니다. 결과적으로 읽기 전용 시스템 파일(예: /etc/passwd, /etc/shadow, /usr/bin/sudo)의 페이지 캐시를 덮어쓸 수 있는 쓰기 프리미티브가 생깁니다.
여기에 root 권한 부여 코드를 끼워 넣으면 — 끝입니다. race condition 기반 익스플로잇과 달리, 이 버그 클래스는 결정적(deterministic)이고 신뢰성이 매우 높습니다. 시도가 실패할 일이 거의 없다는 뜻입니다.
⏰ "엠바고가 깨졌다"는 게 무슨 뜻인가
보안 업계엔 책임 있는 공개(Coordinated Disclosure) 라는 관행이 있습니다. 흐름은 이렇습니다.
연구자가 취약점 발견
벤더(Linux 커널 메인테이너)에게 비공개로 알림
벤더가 패치를 만들고, 주요 배포판에 백포팅
모든 준비가 끝나면 약속된 날짜(엠바고 해제일) 에 동시 공개
여기서 엠바고(embargo) 는 그 약속된 비공개 기간을 말합니다.
그런데 Dirty Frag는 이 흐름이 깨졌습니다. 취약점은 fix가 리버스 엔지니어링되며 세부 정보가 공개되어, 엠바고 만료 전에 공개되었습니다. 누군가가 공개 git 트리에 먼저 머지된 패치 커밋을 거꾸로 돌려서 익스플로잇을 만들어 GitHub에 올린 것이지요. 결국 메인라인 커널엔 패치가 들어갔지만 공식 커널 릴리즈는 아직 나오지 않았고, 대부분의 배포판은 부랴부랴 백포트 패치를 푸는 중입니다.
엠바고 파기는 단순한 "비밀 누설"이 아닙니다. 패치를 적용 못 한 수많은 시스템이 공격자에겐 보이고 방어자에겐 가려진 채로 며칠을 보내야 한다는 뜻입니다.