
CVE-2026-43284 테스터
XCP-ng dom0 호스트가 CVE-2026-43284 ("Dirty Frag")에 노출되었는지 여부를 판단하는 커뮤니티 진단 도구입니다. 이 취약점은 Linux 커널의 xfrm-ESP 서브시스템에서 발생하는 로컬 권한 상승 취약점입니다.
TL;DR — 모든 현재 XCP-ng 릴리스(8.1, 8.2, 8.3)는 기본 4.19 dom0 커널을 사용하여 취약한 코드 범위에 포함됩니다. 2026년 5월 기준 공식 XCP-ng 패치는 발표되지 않았습니다. 이 도구는 호스트가 노출되었는지 여부를 확실히 알려주고 안전한 임시 완화 조치를 제공합니다.
"Dirty Frag"는 2026년 5월 연구원 Hyunwoo Kim(@v4bel)이 공개한 로컬 권한 상승 취약점입니다. 이 취약점은 2017년 1월(커널 4.14+)에 도입된 Linux 커널의 IPsec ESP 서브시스템에서 인플레이스 복호화 고속 경로를 악용합니다. 공개된 작업 개념 증명은 커널 익스플로잇 없이 표준 시스템 콜을 통해 루트 셸을 얻습니다.
두 개의 CVE가 발표되었습니다:
| CVE | 서브시스템 | 도입 시기 | XCP-ng 4.19에 적용? |
|---|---|---|---|
| CVE-2026-43284 | xfrm-ESP (esp4/esp6) | 커널 4.14, 2017년 1월 | 예 |
| CVE-2026-43500 | RxRPC (rxkad) | 커널 6.4, 2023년 6월 | 아니요 — rxrpc.ko가 함께 제공되지 않음 |
XCP-ng는 CVE-2026-43500이 악용 가능하기 위해 필요하지 않습니다. esp4 경로(CVE-2026-43284)만으로도 충분합니다. XCP-ng dom0에는 AppArmor 정책이 없고 권한 없는 사용자 네임스페이스 생성을 허용하기 때문입니다. 이는 esp4 익스플로잇 경로가 요구하는 유일한 전제 조건입니다. 전체 분석은 TECHNICAL.md를 참조하십시오.
진단 스크립트는 XCP-ng에서 CVE-2026-43284의 필요 충분 전제 조건을 테스트합니다: 권한 없는 프로세스가 사용자 네임스페이스 내 XFRM netlink 인터페이스를 통해 esp4 인플레이스 복호화 엔진에 접근할 수 있는지 여부입니다.
다음 작업을 수행하지 않습니다:
프로덕션 dom0에서 실행해도 안전합니다.
# 저장소 클론
git clone https://github.com/grabesec/XCP_ng_CVE-2026-43284_tester.git
cd XCP_ng_CVE-2026-43284_tester
# 진단 실행 (가장 강력한 증명을 위해 비루트로 실행)
python3 XCP_ng_CVE_2026_43284_tester.py
참고: 가능하면 비루트 사용자로 실행하십시오. 이는 실제 위협 모델(손상된 서비스 계정 또는 게스트 이스케이프가 dom0에 도달하는 상황)을 시뮬레이션합니다. 루트로 실행해도 유효한 결과가 나오지만 의미가 덜합니다.
=================================================================
XCP-ng Dirty Frag 진단 -- CVE-2026-43284
xfrm-ESP 페이지 캐시 쓰기 / 로컬 권한 상승
=================================================================
커널 : 4.19.0+1
호스트 : xcpng-prod-01
PID : 52306 | UID: 1000
=================================================================
[0단계] 사전 환경 점검
---------------------------------------------
[*] 권한 없는 사용자 네임스페이스 : 허용됨
[*] modprobe.d의 esp4 블랙리스트 : 찾을 수 없음
[*] 커널 RPM의 CVE-2026-43284 패치 : 찾을 수 없음
[1단계] 기본 esp4 모듈 상태
---------------------------------------------
[*] esp4는 휴면 상태입니다 — 현재 커널에 로드되지 않음.
자동 로드 메커니즘이 XFRM을 통해 요청 시 가져올 수 있음.
[2단계] 권한 없는 네임스페이스에서 esp4 접근 시도
---------------------------------------------
[*] 격리된 사용자+네트워크 네임스페이스에서 자식 프로세스 생성
(unshare -U -n -r) -- 비루트 로컬 공격자 시뮬레이션
[*] 자식 신호 : XFRM SA가 커널에 의해 수락됨
[*] esp4 참조 횟수: 0 (이전) -> 1 (현재)
[*] /proc/modules : esp4 16384 1 - Live 0xffffffffc0a12000
[3단계] 엔지니어링 판정
=================================================================
[!!!] 노출 증명 -- CVE-2026-43284 [!!!]
esp4 참조 횟수 증가: 0 -> 1
사용자+네트워크 네임스페이스 내의 권한 없는 프로세스가
XFRM 보안 연관성을 성공적으로 등록하고 호스트 커널에서
esp4 인플레이스 복호화 엔진에 접근했습니다.
이는 CVE-2026-43284의 게이트 조건입니다.
XCP-ng 특정 분석:
[실패] 커널 4.19는 취약한 코드를 포함합니다 (4.14 이후)
[실패] 사용자 네임스페이스가 열려 있음 -- esp4 경로에 접근 가능
[성공] rxrpc.ko 없음 -- CVE-2026-43500은 해당되지 않음
[실패] 이 구성에서는 esp4 경로만으로 충분함
[0단계] 사전 환경 점검
---------------------------------------------
[+] /etc/modprobe.d/에서 esp4 블랙리스트 발견
모듈 로드 완화 조치가 적용된 것으로 보입니다.
...
[2단계] 권한 없는 네임스페이스에서 esp4 접근 시도
---------------------------------------------
[+] XFRM 상태 추가가 커널에 의해 거부되었습니다.
네임스페이스에서 esp4 엔진에 접근하지 못했습니다.
[결과] 네임스페이스의 허점이 esp4 접근을 허용하지 않았습니다.
포함된 mitigate.sh 스크립트는 IPsec 탐지 기능이 내장되어 있어 터널을 깨뜨리지 않고 안전하게 완화 조치를 적용합니다:
# 현재 상태만 확인 (변경 없음)
sudo ./mitigate.sh --check
# 완화 조치 적용 (IPsec이 감지되면 중단)
sudo ./mitigate.sh
# 완화 조치 제거 (공식 커널 패치 적용 후)
sudo ./mitigate.sh --undo
옵션 A — IPsec을 사용하지 않는 호스트 (대부분의 dom0):
echo 'install esp4 /bin/false' > /etc/modprobe.d/dirtyfrag-cve-2026-43284.conf
rmmod esp4 2>/dev/null || true
echo 3 > /proc/sys/vm/drop_caches
옵션 B — IPsec을 사용하는 호스트 (strongSwan / Libreswan):
esp4를 블랙리스트에 추가하지 마십시오 — 즉시 모든 터널이 중단됩니다. 대신:
⚠️ 이것은 로컬 권한 상승입니다. 공격자는 이미 dom0에 셸 또는 코드 실행 권한이 있어야 합니다. 주요 방어책은 dom0에 로컬 접근 권한이 있는 사람을 제한하는 것입니다. dom0 루트 = 하이퍼바이저 루트 = 모든 게스트 VM 손상.
| 요구 사항 | 참고 |
|---|---|
| Python 3.6+ |
외부 Python 라이브러리 불필요. pip 설치 필요 없음.
XCP_ng_CVE-2026-43284_tester/
├── XCP_ng_CVE_2026_43284_tester.py # 진단 스크립트 — 먼저 실행
├── mitigate.sh # IPsec 탐지 기능이 있는 완화 스크립트
├── README.md # 이 파일 — 빠른 시작 및 개요
├── TECHNICAL.md # 심층 기술 분석 — 공격 체인,
│ # XCP-ng에 rxrpc가 필요하지 않은 이유,
│ # 스크립트 내부 설명
├── CHANGELOG.md # 버전 기록
└── LICENSE # MIT
다음에 대한 완전한 설명을 보려면:
TECHNICAL.md 를 참조하십시오.
모니터링: https://xcp-ng.org/forum/topic/365/updates-announcements
이 도구는 악용의 전제 조건(네임스페이스 + esp4 접근)만 테스트합니다. 익스플로잇 코드를 포함, 재현 또는 참조하지 않습니다. 기본 취약점은 공개적으로 알려져 있으며, 원본 연구원의 작업 개념 증명이 공개되었고 CVE가 할당되었습니다. 이 도구의 목적은 XCP-ng 관리자가 노출 정도를 파악하고 Vates의 공식 커널 패치를 기다리는 동안 임시 완화 조치를 적용할 수 있도록 돕는 것입니다.
Rodrigo Gracia — 커뮤니티 보안 기여
XCP-ng / Xen Orchestra 실무자
https://github.com/grabesec
2026년 5월
| XCP-ng 8.x dom0에 포함됨 |
iproute2 (ip 명령어) | XCP-ng 8.x dom0에 포함됨 |
unshare | util-linux의 일부, XCP-ng 8.x dom0에 포함됨 |
| Linux 커널 | XCP-ng dom0의 모든 커널 4.14–6.x |
| XCP-ng 버전 | 커널 | 취약? | 공식 패치? |
|---|
| 8.3 LTS | 4.19 + Vates 패치 | 예 | 2026년 5월 기준 미발표 |
| 8.2 | 4.19 + Vates 패치 | 예 | 2026년 5월 기준 미발표 |
| 8.1 (EOL) | 4.19 + Vates 패치 | 예 | 예상되지 않음 |