대응 방안을 찾고 계신가요? 바로 아래로 이동하세요 ↓

요약
- 내용: 'Dirty Frag'라고 불리는 리눅스 로컬 권한 상승 체인 'Dirty Frag'라고 불리는 리눅스 로컬 권한 상승 체인으로, CVE-2026-43284 (xfrm-ESP 페이지 캐시 쓰기) 및 CVE-2026-43500 (RxRPC 페이지 캐시 쓰기)를 결합한 것입니다.
- 영향: 공개된 개념 증명(PoC) 익스플로잇은 취약한 커널 환경에서 권한이 없는 로컬 계정으로부터 안정적인 루트 권한 상승을 보여줍니다.
- 상태: 실행 가능한 공개 익스플로잇이 유포되고 있습니다. 공동 패치 작업이 완료되기 전에 정보 공개 금지 조치가 해제되었습니다.
- 위험도: 로컬 공격 벡터, 낮은 복잡도, 사용자 상호작용 불필요, 결정론적 악용. CVSS: 7.8 (잠정)
- 지금 당장 다음 조치를 취하십시오: 영향을 받은 커널을 즉시보호하십시오. 재부팅 없이 적용되는 패치를 사용하면 유지보수 시간이나 재부팅을 기다릴 필요 없이 Dirty Frag 문제를 완화할 수 있습니다. 그렇지 않은 경우, 패치된 커널을 가능한 한 빨리 배포하십시오. 두 가지 방법 모두 즉시 사용할 수 없는 경우, 아래의 취약한 ESP 및 RxRPC 경로를 일시적으로 비활성화하십시오.
저도 영향을 받나요?
다음 중 하나에서 최신 메인라인 기반 커널을 실행 중이라면 이 문제의 영향을 받을 가능성이 높습니다:
- 우분투 (LTS 및 최신 버전)
- 레드햇 엔터프라이즈 리눅스, 알마리눅스, 록키 리눅스, 센토스 스트림
- 페도라
- openSUSE Tumbleweed
- CloudLinux 변형을 포함한 대부분의 다운스트림 리빌드
노출된 모듈에 대한 빠른 확인:
lsmod | grep -E '^(esp4|esp6|rxrpc) '
이 중 하나라도 로드되어 있거나, 권한이 없는 사용자가 필요에 따라 자동으로 로드할 수 있는 경우, 패치가 적용될 때까지 해당 호스트가 노출된 것으로 간주해야 합니다.
당신은 단순히 더 일찍 신청했다고 해서 복사 실패 완화 조치를 적용했다고 해서 자동으로 안전해지는 것은 아닙니다. 차단 algif_aead 을 차단한다고 해서 Dirty Frag가 멈추지는 않습니다.
‘더티 프래그’란 무엇인가
Dirty Frag는 리눅스 네트워크 스택 내의 두 가지 인플레이스(in-place) 복호화 경로를 악용하는 커널 로컬 권한 상승(LPE) 체인입니다:
- xfrm-ESP (esp4, esp6), IPsec에서 사용됨
- RxRPC (rxrpc), AFS 및 관련 RPC 트래픽에서 사용됨
이 문제는 ‘Dirty Pipe’ 및 ‘Copy Fail’과 같은 버그 계열에 속합니다. 커널 루틴이 자신이 독점적으로 소유하지 않은 페이지에 데이터를 기록함으로써, 디스크상의 파일을 지원하는 페이지 캐시 항목의 내용을 덮어쓰게 되는 것입니다.
이 체인은 연구원 김현우 씨에 의해 공개되었습니다. ‘Copy Fail 2: Electric Boogaloo’ 는 공개된 수정 커밋을 리버스 엔지니어링하여 확인된 Dirty Frag(CVE-2026-43284)의 xfrm-ESP 부분으로, 별도의 CVE가 아니며 전체 체인도 아닙니다.
이 취약점 공격이 실제로 어떻게 작동하는가
리눅스의 페이지 캐시는 파일 내용의 메모리 내 사본을 보관하여, 반복적인 읽기 작업 시 디스크에 접근할 필요가 없도록 합니다. 다음 명령을 실행하면 cat /etc/passwd명령어를 실행하면, 커널은 거의 항상 파일 시스템이 아닌 캐시된 페이지에서 바이트를 제공합니다. 이 캐시된 페이지는 공유됩니다. 즉, 해당 파일을 읽는 모든 사용자는 동일한 메모리를 보게 됩니다.
최신 커널 수신 경로는 다음을 지원합니다 제로 카피 암호 해독을 지원합니다. 암호화된 네트워크 데이터(예: ESP로 캡슐화된 IPsec 패킷)가 도착하면, 커널은 새로운 버퍼를 할당하고 두 번 복사하는 대신 이를 목적지 페이지로 직접 복사하여 암호를 해독할 수 있습니다. 이는 속도가 빠르며, 목적지 페이지는 커널이 해당 용도로 할당한 것이기 때문에 대부분의 경우 안전합니다.
Dirty Frag는 대상 페이지가 사유지가 비공개 소유가 아닐 때 발생합니다. 신중하게 구성된 splice(2) 또는 sendfile(2) 작업을 통해, 권한이 없는 프로세스라도 커널의 ESP 또는 RxRPC 수신 경로를 통해 수신 데이터를 현재 페이지 캐시를 담당하고 있는 페이지(예: /etc/passwd 이나 /usr/bin/su와 같은 민감한 파일을 지원하는 페이지도 포함됩니다.
복호화된 바이트는 공격자가 제어합니다(공격자가 암호화하여 전송하기 전에 평문을 선택했기 때문입니다). 커널이 COW(Copy-on-Write)를 적용하거나 다른 방식으로 대상 페이지를 격리하지 않기 때문에, 이 쓰기 작업은 공유 페이지 캐시 사본에 기록됩니다. 이후 해당 파일을 읽는 모든 작업( login, sudo, 또는 su – 수정된 내용을 반환합니다.
디스크상의 파일은 변경되지 않았습니다. 하지만 이후에 읽기 작업이 수행될 경우, 파일 시스템의 원래 내용 대신 수정된 캐시 버전이 사용될 수 있습니다.
배포 범위를 확보하기 위해 두 가지 경로가 연결되어 있습니다:
- The ESP 경로 는 권한이 없는 사용자 네임스페이스 생성을 필요로 하는데, 우분투는 AppArmor를 통해 이를 차단하지만 대부분의 다른 배포판에서는 허용합니다.
- The RxRPC 경로 를 사용하려면 rxrpc.ko 모듈이 로드되어야 하는데, 대부분의 배포판에서는 이 모듈이 기본적으로 제공되지 않습니다. 하지만 우분투(Ubuntu)는 다릅니다. 우분투의 네임스페이스 블록은 RxRPC가 처리하며, 다른 배포판에서 누락된 rxrpc 기능은 ESP가 처리합니다.
이것들을 합치면 가장 일반적인 보안 강화 구성을 대부분 다룰 수 있습니다.
실제로 이 버그가 유난히 위험한 이유는 다음과 같습니다:
- 결정론적: 경합 창이 없으며, 시간에 민감한 기본 연산도 없습니다.
- 오류 발생 시 무반응: 실패한 시도는 일반적으로 커널을 당황하게 하지 않습니다.
- 높은 성공률: 공개 PoC가 단 한 번의 시도만으로 작동할 만큼 신뢰할 수 있습니다.
- 신속한 악용화: 조정된 패치 작업이 완료되기 전에 공개적인 익스플로잇 체인이 등장하면서, 방어 측의 대응 시간이 급격히 단축되었다.
완화
가장 안전한 대응 방안은 실행 중인 커널을 즉시 보호하는 것입니다. 위험 노출을 줄일 수 있는 실질적인 방법 세 가지를, 처리 속도와 운영에 미치는 영향의 정도에 따라 순서대로 나열합니다.
1. 재부팅 없이 패치 적용 (가장 빠르며, 서비스 중단 없음)
영향을 받는 엔터프라이즈 커널 제품군을 대상으로 KernelCare의 재부팅 없이 적용 가능한 패치가 배포되고 있으며, 이를 통해 긴급 유지보수 시간이나 일괄 재부팅을 기다릴 필요 없이 취약한 상태의 실행 중인 커널을 보호할 수 있습니다.
가동 시간이 중요한 인프라를 운영하는 조직의 경우, 이는 표준 공급업체 커널 배포 및 재부팅 주기가 정상화될 때까지 즉시 문제 해결 시간을 단축해 줍니다.
추가적인 다운스트림 커널 패키지 버전이 출시됨에 따라, 스캐너 탐지 및 벤더 버전 보고 기능이 보호된 실행 중인 커널 상태를 일시적으로 따라가지 못할 수 있습니다.
| 아직 KernelCare 고객이 아니신가요? 6월 말까지 신규 고객 대상 할인 혜택이 제공됩니다. KernelCare에 대해 자세히 알아보세요. |
2. 패치된 커널을 설치하고 시스템을 재부팅합니다
표준 해결 절차는 공급업체에서 제공하는 패치 적용된 커널 패키지를 배포하고, 운영상 가능한 한 빨리 영향을 받은 시스템을 재부팅하는 것입니다.
부분적으로 신뢰할 수 있는 코드가 실행될 수 있는 시스템(쿠버네티스 노드, CI/CD 실행 환경, 공유 호스팅 환경, 개발자 인프라, 멀티테넌트 워크로드 등)을 우선적으로 검토하십시오.
3. 임시 수동 대응 조치 (패치 적용을 미뤄야 하는 경우)
재부팅 없이 패치를 적용하거나 즉시 재부팅할 수 없는 경우, 모듈 차단을 통해 취약점이 있는 ESP 및 RxRPC 경로를 일시적으로 비활성화할 수 있습니다.
먼저 이 내용을 읽어보세요
esp4와 esp6를 차단하면 IPsec이 작동하지 않게 됩니다. strongSwan, Libreswan, 사이트 간 VPN 또는 로드 워리어 클라이언트와 같은 IPsec 트래픽을 종단 처리하거나 라우팅하는 경우, 이 설정을 운영 환경 호스트에 적용하면 해당 터널 연결이 끊어집니다.
대규모 배포를 진행하기 전에 해당 모듈이 현재 사용 중이 아닌지 확인하십시오.
ip xfrm policy list 2>/dev/null | head
ss -tunap | grep -i rxrpc
출력 결과가 비어 있지 않다면, 진행하기 전에 그 영향에 대비하여 계획을 세워야 합니다.
취약한 모듈 차단
sudo sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
타협이 의심되는 경우
페이지 캐시를 지워, 수정된 캐시된 바이너리 파일이 제거되고 다음 액세스 시 디스크에서 다시 읽히도록 하세요:
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
이것은 해결책이 아니라 포렌식 조사 단계로 간주하십시오. 공격자가 이미 Dirty Frag을 통해 루트 권한을 획득한 경우, 페이지 캐시 제거 작업은 권한 상승 이후에 공격자가 수행한 어떤 작업도 지우지 못합니다.
탐지
현재 ‘Dirty Frag’ 공격이 성공적으로 수행되었는지 확인하기 위한, 널리 인정받거나 신뢰할 수 있는 사후 탐지 방법은 존재하지 않습니다. 디스크상의 파일은 그대로 유지되며, 이 공격은 ‘Dirty Pipe’ 공격처럼 뚜렷한 시스템 호출 패턴을 남기지 않습니다. 그렇긴 하지만, 몇 가지 징후를 주의 깊게 살펴볼 필요가 있습니다:
- 예기치 않게 esp4, esp6, 또는 rxrpc 를 사용하는 호스트에서 IPsec이나 AFS와 관련이 없는 경우. Auditd 규칙:
-w /sbin/modprobe -p x -k module_load
- 이 기능이 일반적인 작업 부하에 포함되지 않는 시스템에서 권한이 없는 사용자가 네트워크 네임스페이스를 새로 생성하는 경우. 다음을 통해 추적: unshare 시스템 호출 또는 eBPF를 통해 추적하십시오.
- 이전에 su 또는 sudo를 호출한 적이 없는 계정에 의한 suid 실행, 특히 splice/sendfile 작업이 집중적으로 발생한 직후.
- Imunify360 고객 여러분: 공개 PoC의 배포 스크립트와 관련된 지표가 차단 목록에 추가되었습니다.
이는 경험적 지침일 뿐, 확실한 보장은 아닙니다. 노출 기간 동안 신뢰할 수 없는 로컬 사용자가 셸 액세스 권한을 가졌던 호스트는 잠재적으로 침해되었을 가능성이 있다고 가정하십시오.
우선순위별 개선 조치 체크리스트
- 패치: 재부팅 없이 패치를 적용하거나 패치된 커널을 즉시 배포하십시오. KernelCare 사용자는 정기적인 유지보수 시간대가 도래할 때까지 재부팅 없이 지원되는 실행 중인 커널을 보호할 수 있습니다. 그렇지 않은 경우, 공급업체에서 패치한 커널을 설치하고 영향을 받은 시스템을 가능한 한 빨리 재부팅하십시오.
- 즉시 패치를 적용할 수 없는 경우, IPsec이나 RxRPC에 의존하지 않는지 확인한 후, 위에서 설명한 모듈 차단 완화 조치를 적용하십시오.
- 로컬 액세스 감사: 공유 호스트, CI/CD 러너, 빌드 서버 및 멀티테넌트 시스템에서 현재 셸(shell) 권한을 보유한 사용자를 검토하십시오. 해당 기간 동안 필요하지 않은 권한은 취소하십시오.
- 검색: 노출 기간에 대해 위의 탐지 쿼리를 실행하십시오.
- 패치 후 재부팅: 이렇게 하면 변경되었을 가능성이 있는 캐시된 페이지들이 기존 커널과 함께 모두 지워집니다.
왜 ‘더티 프래그’ 같은 버그가 더 빨리 나타나는가
‘더티 프래그(Dirty Frag)’는 더 광범위한 업계 동향을 반영하기도 합니다. 바로 AI 기반 감사 기술이 성능에 결정적인 영향을 미치는 코드 경로에서 깊이 숨겨져 오랫동안 방치되어 온 결함의 발견 속도를 가속화하고 있다는 점입니다.
TuxCare의 CEO 이고르 셀레츠키(Igor Seletskiy)는 최근 게시물에서, 최신 AI 기반 분석 기술 덕분에 과거에는 수년간의 검토 과정에서도 발견되지 않았던 미묘한 커널 및 인프라 취약점을 찾아내는 데 소요되는 시간이 대폭 단축되고 있다고 주장했다.
‘Dirty Frag’는 이러한 패턴과 매우 유사합니다. 고성능 네트워킹 경로 내에 숨겨진 페이지 캐시 소유권 결함으로, 현재 이미 공개된 익스플로잇 코드를 통해 신뢰할 수 있는 권한 상승 공격 수단으로 악용되고 있습니다.
참조
CVE-2026-43284 (xfrm-ESP 페이지 캐시 쓰기) — NVD 항목: https://nvd.nist.gov/vuln/detail/CVE-2026-43284
CVE-2026-43500 (RxRPC 페이지 캐시 쓰기) — NVD 항목: https://nvd.nist.gov/vuln/detail/CVE-2026-43500
- 참고: RxRPC 항목은 NVD 항목이 공개될 때까지 추적을 위해 예약되어 있으므로, 해당 항목이 채워질 때까지는 페이지에 “예약됨”으로 표시될 수 있습니다.
원저자 보고서 — 김현우 (@v4bel):
- 호스팅 사이트: https://dirtyfrag.io
- GitHub의 전체 기술 문서: https://github.com/V4bel/dirtyfrag/blob/master/assets/write-up.md
- PoC 저장소 / README: https://github.com/V4bel/dirtyfrag
- oss-security 공개 이메일 (2026년 5월 7일): https://www.openwall.com/lists/oss-security/2026/05/07/8
업스트림 커널 패치 시리즈 (lore.kernel.org):
- RxRPC 패치 스레드 (AlmaLinux 권고문에서 언급됨): https://lore.kernel.org/all/afKV2zGR6rrelPC7@v4bel/
- 병합된 ESP 수정 사항의 표준 커밋 참조는 메인라인입니다 f4c50a4034e6입니다: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4
AlmaLinux 공지: https://almalinux.org/blog/2026-05-07-dirty-frag/

