
결정적 Linux 커널 로컬 권한 상승 익스플로잇으로, 두 개의 페이지 캐시 쓰기 프리미티브(xfrm/ESP 및 RxRPC)를 연쇄하여 2017년 이후 모든 주요 배포판에서 안정적인 루트 접근을 제공합니다.
범용 리눅스 커널 로컬 권한 상승
| 필드 | 상세 |
|---|---|
| CVE | CVE-2026-43284 (xfrm/ESP) + CVE-2026-43500 (RxRPC) |
| 별칭 | Dirty Frag |
| CVSS | 7.8 HIGH |
| 유형 | 로컬 권한 상승 (LPE) |
| 도입 | 리눅스 커널 4.10 (2017, 커밋 cac2661c53f3) |
| 수정 | 메인라인 커밋 f4c50a4034e6 / aa54b1d27fe0 |
| 요구 사항 | 권한이 없는 로컬 셸 접근 |
| 원격 벡터 | 없음 — 로컬 전용 |
| 공개 | 2026년 5월 7일, Hyunwoo Kim (@v4bel) |
리눅스 커널의 xfrm/ESP 및 RxRPC 서브시스템의 논리적 결함으로 인해 권한이 없는 로컬 사용자가 시스템의 읽기 가능한 모든 파일의 페이지 캐시에 결정적이고 통제된 임의 쓰기(deterministic, controlled arbitrary write) 를 수행할 수 있습니다 — /usr/bin/su와 같은 setuid 바이너리를 포함합니다.
근본 원인은 페이지 캐시 페이지를 참조하는 공유 소켓 버퍼(skb) 프래그먼트의 안전하지 않은 제자리 복호화(in-place decryption) 입니다. 특히 splice(2) 또는 sendfile(2)를 사용할 때 발생합니다. 이는 강력한 임의 페이지 캐시 쓰기 프리미티브를 제공하며, 메모리 내의 민감한 파일을 덮어써 완전한 루트 권한을 얻는 데 악용될 수 있습니다.
범용 적용 범위를 달성하기 위해 두 가지 서로 다른 프리미티브가 체이닝됩니다:
xfrm-ESP Page-Cache Write: Copy Fail과 동일한 싱크를 공유하지만 algif_aead 사용 가능 여부와 관계없이 esp4/esp6 모듈을 통해 트리거됩니다. 네임스페이스 생성 권한이 필요합니다.RxRPC Page-Cache Write: 네임스페이스 권한이 필요하지 않지만 rxrpc.ko가 있어야 합니다(우분투에서는 기본적으로 로드됨). CVE-2026-43284의 사각지대를 보완합니다.두 변종을 체이닝하면 서로의 사각지대를 보완하여 모든 주요 배포판에서 안정적인 루트 권한을 얻을 수 있습니다.
레이스 컨디션 없음. 재시도 없음. 크래시 위험 없음. 테스트된 모든 배포판에서 결정적(Deterministic)으로 동작.
중요: 공개된 Copy Fail 완화 조치(algif_aead 블랙리스트)가 적용된 시스템에서도 Dirty Frag는 CVE-2026-43284를 통해 여전히 악용 가능합니다.
algif_aead 블랙리스트(Copy Fail 우회 조치)를 완전히 우회CVE-2026-43284 (xfrm/ESP): 리눅스 커널 커밋 cac2661c53f3(2017-01-17) ~ f4c50a4034e6(2026-05-05).
CVE-2026-43500 (RxRPC): 리눅스 커널 커밋 2dc334f1a63a(2023-06-08) ~ aa54b1d27fe0(2026-05-10).
이 취약점 체인의 실제 수명은 약 9년입니다.
이 범위의 커널을 제공하는 모든 주요 배포판이 영향을 받습니다:
gcc -O0 -Wall -o exp exp.c -lutil && ./exp
테스트 권한이 없는 시스템에서는 사용하지 마십시오.
⚠️ 중요: 이 익스플로잇 실행 후 페이지 캐시가 오염됩니다. 오염된 페이지 캐시를 비워 시스템 안정성을 확보하려면 다음을 실행하십시오:
echo 3 > /proc/sys/vm/drop_caches
또는 시스템을 재부팅하십시오.
메인라인 수정 사항이 포함된 커널로 업데이트하고 재부팅하십시오.
메인라인에서 다음 커밋으로 수정됨:
f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4aa54b1d27fe0c2b78e664a34fd0fdf7cd1960d71# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y && sudo reboot
# RHEL / AlmaLinux / CentOS Stream
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot
# SUSE / openSUSE
sudo zypper refresh && sudo zypper update kernel-default && sudo reboot
# Fedora
sudo dnf upgrade --refresh && sudo reboot
즉시 패치가 불가능한 경우, 취약한 모듈을 비활성화하고 페이지 캐시를 정리하십시오.
# Blacklist vulnerable modules
sudo sh -c 'printf "install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n" > /etc/modprobe.d/dirtyfrag.conf'
# Unload modules immediately
sudo rmmod esp4 esp6 rxrpc 2>/dev/null || true
# Drop page cache
echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null
신뢰할 수 없는 워크로드(컨테이너, CI 러너, 샌드박스 환경)의 경우 패치 상태와 관계없이 seccomp 또는 AppArmor 정책을 통해 AF_ALG 소켓 생성과 splice()를 제한하십시오. 이는 취약한 커널에서도 공격 표면을 줄일 수 있지만 완전한 수정은 아닙니다.
취약한 모듈이 현재 로드되었거나 사용 중인지 확인합니다:
# Check if modules are loaded
lsmod | grep -E 'esp4|esp6|rxrpc'
# Check if any process has an AF_ALG socket open
lsof | grep AF_ALG
ss -xa | grep alg
# Confirm workaround is active after reboot
cat /etc/modprobe.d/dirtyfrag.conf
왜 두 취약점을 체이닝하나요?
xfrm-ESP Page-Cache Write는 강력한 임의 4바이트 STORE 프리미티브를 제공하며 대부분의 배포판에 존재하지만, 네임스페이스 생성 권한이 필요합니다 — Ubuntu는 AppArmor를 통해 이를 차단하기도 합니다. RxRPC Page-Cache Write는 네임스페이스 권한이 필요하지 않지만, rxrpc.ko는 대부분의 배포판에 포함되지 않습니다 — 단, Ubuntu는 기본적으로 로드됩니다. 두 취약점을 체이닝하면 서로의 사각지대를 보완하여 모든 주요 배포판에서 안정적인 루트 권한을 얻을 수 있습니다.
Copy Fail(CVE-2026-31431)과의 관계는 무엇인가요?
xfrm-ESP 프리미티브는 CVE-2026-31431과 동일한 페이지 캐시 쓰기 싱크를 공유하지만, algif_aead와 무관하게 esp4/esp6 모듈을 통해 트리거됩니다. CVE-2026-31431 완화 조치(algif_aead 블랙리스트)를 적용해도 Dirty Frag로부터는 보호되지 않습니다.
왜 'Dirty Frag'라는 이름인가요?
이 취약점은 struct sk_buff의 frag 멤버를 오염(dirty)시켜, 페이지 캐시에 대한 권한 없는 쓰기를 허용하는 논리적 결함인 Dirty Pipe와 동일한 버그 클래스에 속합니다.
이 저장소는 교육 및 방어적 보안 목적으로만 제공됩니다. 소유하지 않았거나 명시적인 서면 테스트 승인을 받지 않은 시스템에서는 이 저장소의 정보나 코드를 사용하지 마십시오.
안전하게 지내세요. 일찍 패치하고, 자주 패치하세요. 즐거운 해킹 되세요 🛡️
| Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) | Dirty Frag (2026) |
|---|
| 레이스 컨디션 필요 | 예 | 부분적 | 아니요 | 아니요 |
| 버전 의존성 | 예 | 예 | 아니요 | 아니요 |
| 신뢰성 | 불안정 | 보통 | 결정적 | 결정적 |
| 배포판 지원 | 제한적 | 제한적 | 2017년 이후 전체 | 2017년 이후 전체 |
| Copy Fail 완화 조치 우회 | — | — | 해당 없음 | 예 |
| 배포판 | 테스트 버전 | 상태 |
|---|
| Ubuntu 24.04.4 | 6.17.0-23-generic | 영향 받음 — 패치 배포 중 |
| RHEL 10.1 | 6.12.0-124.49.1.el10_1.x86_64 | 영향 받음 — 패치 배포 중 |
| AlmaLinux 10 | 6.12.0-124.52.3.el10_1.x86_64 | 영향 받음 — 패치 사용 가능 |
| CentOS Stream 10 | 6.12.0-224.el10.x86_64 | 영향 받음 — 패치 배포 중 |
| Fedora 44 | 6.19.14-300.fc44.x86_64 | 영향 받음 — 패치 사용 가능 |
| openSUSE Tumbleweed | 7.0.2-1-default | 영향 받음 — 진행 중 |
| Debian | — | 영향 받음 — 진행 중 |
| 구성 요소 | 영향 |
|---|
| SSH | ✅ 영향 없음 |
| dm-crypt / LUKS | ✅ 영향 없음 |
| kTLS / in-kernel TLS | ✅ 영향 없음 |
| OpenSSL / GnuTLS / NSS (기본 빌드) | ✅ 영향 없음 |
| IPsec / XFRM (ESP 터널, VPN) | ⚠️ 손상됨 — esp4 및 esp6을 사용할 수 없게 됨 |
| AFS / OpenAFS 클라이언트(RxRPC 사용) | ⚠️ 손상됨 — rxrpc를 사용할 수 없게 됨 |
AF_ALG + AEAD를 직접 사용하는 애플리케이션 | ⚠️ lsof | grep AF_ALG로 확인 |
| 자료 | 링크 |
|---|
| CVE-2026-43284 메인라인 수정 | f4c50a4034e6 |
| CVE-2026-43500 메인라인 수정 | aa54b1d27fe0 |
| NVD — CVE-2026-43284 | https://nvd.nist.gov/vuln/detail/CVE-2026-43284 |
| NVD — CVE-2026-43500 | https://nvd.nist.gov/vuln/detail/CVE-2026-43500 |
| 날짜 | 이벤트 |
|---|
| 2017-01-17 | CVE-2026-43284 회귀 도입 (cac2661c53f3) |
| 2023-06-08 | CVE-2026-43500 회귀 도입 (2dc334f1a63a) |
| 2026-05-05 | CVE-2026-43284 메인라인 패치 (f4c50a4034e6) |
| 2026-05-07 | 공개 |
| 2026-05-10 | CVE-2026-43500 메인라인 패치 (aa54b1d27fe0) |
| 2026-05-10+ | 배포판 패치 배포 시작 |