
CVE-2022-0847(Dirty Pipe)에 대한 개념 증명 익스플로잇으로, 읽기 전용 파일에 대한 비권한 쓰기와 권한 상승을 가능하게 하는 Linux 커널 경쟁 조건입니다.
CVE-2022-0847(Dirty Pipe)에 대한 개념 증명 익스플로잇으로, 권한이 없는 사용자가 읽기 전용 파일에 쓸 수 있게 해주는 Linux 커널 취약점입니다.
CVE-2022-0847은 Linux 커널 5.8부터 5.16까지에 영향을 미칩니다. Linux 커널의 pipe 구현에서 발생하는 경쟁 조건(race condition)을 악용하여 메모리에 캐시된 읽기 전용 파일 페이지에 임의의 데이터를 씁니다.
/etc/passwd 수정).
├── src/
│ └── exploit.c # Dirty Pipe exploit source code
├── run.sh # QEMU test environment launcher
├── initramfs/ # Root filesystem for testing
├── debugfs.cpio # Compressed initramfs
└── README.md # This file
libelf-dev (커널 빌드용)gcc ./src/exploit.c -o ./src/exploit -static -pthread
./run.sh
# Inside QEMU shell:
/home/exploit
cat /etc/passwd # Verify password hash was written
su root # Switch to root (no password needed after exploit)
./src/exploit
이 익스플로잇은 /etc/passwd를 수정하여 알려진 비밀번호 해시를 가진 root 사용자를 주입합니다.
이 익스플로잇은 다음과 같이 동작합니다:
PIPE_BUF_FLAG_CAN_MERGE 플래그를 설정splice() 사용하여 파일 페이지를 pipe 버퍼에 연결이를 통해 COW(Copy-on-Write)를 트리거하지 않고 읽기 전용 메모리 페이지에 쓸 수 있습니다.
/proc/self/mem에 대한 접근 제한이 익스플로잇은 교육 및 승인된 보안 테스트 목적으로만 사용됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다.
Minh Vu ([email protected])