
DirtyClone - 소스에서 CVE-2026-43503으로 설명되는 커널/XFRM 관련 취약점을 대상으로 하는 로컬 권한 상승(LPE) 개념 증명
DirtyClone은 C로 작성된 진단용 개념 증명 로컬 권한 상승 도구입니다. 소스에서 CVE-2026-43503으로 설명된 커널/XFRM 관련 익스플로잇 경로를 대상으로 하며, 통제된 환경에서 승인된 보안 연구 목적으로만 사용됩니다.
이 저장소는 다음을 포함합니다:
현재 구현은 다음과 같은 상위 수준 단계를 수행합니다:
이 도구는 승인된 보안 테스트 전용입니다. 명시적 허가 없이 시스템에서 실행하는 것은 불법일 수 있으며 시스템 무결성에 영향을 줄 수 있습니다.
먼저 필요한 OpenSSL 개발 패키지를 설치하세요:
# Debian/Ubuntu
sudo apt-get install libssl-dev
# Fedora
sudo dnf install openssl-devel
# Arch Linux
sudo pacman -S openssl
그런 다음 바이너리를 컴파일합니다:
gcc -o dirtyclone dirtyclone.c -lcrypto -Wall -O2
다음 명령으로 프로그램을 실행하세요:
./dirtyclone
선택적 인자:
./dirtyclone -q # 조용한 모드
./dirtyclone -v # 상세 모드 (기본값)
./dirtyclone -h # 도움말 표시
실행 시 프로그램은 다음을 수행합니다:
익스플로잇은 간단한 아이디어를 기반으로 합니다. 프로그램이 조작된 ESP/XFRM 페이로드를 준비하여 커널이 데이터를 페이지 캐시 백업 메모리 영역으로 복호화하도록 한 후, 대상 SUID 바이너리의 바이트가 변경되었는지 확인합니다.
실용적인 측면에서 프로그램은 다음 작업을 수행합니다:
/usr/bin/su를 식별하고 메모리에 매핑합니다;이는 개념 증명 흐름이며, 범용 권한 상승 프레임워크가 아닙니다. 익스플로잇 메커니즘을 시연하고 대상 커널이 여전히 취약한 동작을 노출하는지 확인하는 데 도움을 주기 위한 것입니다.
다음은 동일한 개념을 상위 수준으로 보여주는 간단한 예제입니다:
#include <stdio.h>
#include <string.h>
static int dummy_exploit(unsigned char *target_bytes) {
unsigned char expected[] = {0x31, 0x0f, 0x05};
memcpy(target_bytes, expected, sizeof(expected));
return 0;
}
int main(void) {
unsigned char target[16] = {0};
dummy_exploit(target);
printf("Patched bytes: %02x %02x %02x\n", target[0], target[1], target[2]);
return 0;
}
실제 프로젝트는 동일한 원리를 사용하지만, 페이로드를 ESP/XFRM 스타일 패킷으로 패키징하고 단순한 메모리 복사 대신 네트워킹 스택을 통해 커널 경로를 구동합니다.
설정 단계
XFRM 준비
페이로드 구성
전달 단계
확인 및 실행
구현에는 다음이 포함됩니다:
atexit 및 시그널 핸들러를 통해 등록된 정리 루틴,fork/execvp 기반 안전한 명령 실행,소스는 다음을 갖춘 Linux 환경을 기대합니다:
ip, iptables, modprobe,/usr/bin/su의 대상 바이너리,프로그램은 진단용 PoC 요약을 보여주고 다음 중 하나를 수행합니다:
익스플로잇이 트리거되지 않으면 프로그램은 커널이 패치되었을 가능성이 있음을 암시하는 명확한 메시지를 출력합니다.
다음의 경우에만 이 프로젝트를 사용하세요:
프로덕션 시스템이나 평가 권한이 없는 시스템에서는 절대 이 코드를 실행하지 마세요.
소스 헤더는 저자를 MrAashish0x1 (gl1tch0x1)로 식별합니다. 저장소에는 별도의 라이선스 파일이 포함되어 있지 않으므로, 코드는 프로덕션 소프트웨어가 아닌 연구 자료로 취급해야 합니다.