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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-25741 — CVE-2021-25741 Kubernetes 취약점에 대한 익스플로잇으로, 경쟁 조건(race condition)을 통해 호스트 파일시스템을 파드에 마운트할 수 있게 하며, 배포 스크립트와 기술적 세부 정보를 포함합니다. | Kitploit
도구/GitHubGitHub/betep0k/cve-2021-25741
Vulnerability AnalysisExploitationPenetration TestingCloud SecurityContainer Escape
GitHubbetep0k/cve-2021-25741

CVE-2021-25741

CVE-2021-25741 Kubernetes 취약점에 대한 익스플로잇으로, 경쟁 조건(race condition)을 통해 호스트 파일시스템을 파드에 마운트할 수 있게 하며, 배포 스크립트와 기술적 세부 정보를 포함합니다.

저장소 보기
30144년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

소개

CVE-2021-25741 취약점을 위한 익스플로잇입니다. 이 취약점은 Node 파일시스템을 읽기-쓰기 권한으로 새 POD 내부에 마운트할 수 있게 합니다.

취약점에 대한 자세한 내용은 여기에서 확인할 수 있습니다:

https://security.googleblog.com/2021/12/exploring-container-security-storage.html

저는 이 취약점의 작성자가 아니며 단지 익스플로잇을 만들었을 뿐입니다.

익스플로잇 개발에 도움을 주신 @russtone 및 @maximusfox 님께 감사드립니다.

조건

  1. 새 POD를 생성할 권한이 있어야 합니다
  2. 노드에 취약한 kubelet이 있어야 합니다

취약한 kubelet 버전:

  • v1.22.0 - v1.22.1
  • v1.21.0 - v1.21.4
  • v1.20.0 - v1.20.10
  • <= v1.19.14

사용 방법

run.sh를 실행하고 기다리면 됩니다 :) 익스플로잇은 경쟁 조건(race condition)에 기반하기 때문에 시간이 걸릴 수 있습니다 (제 경우 10-20분이 걸렸습니다).

root@kitploit:~
chmod +x run.sh; ./run.sh

"Success" 메시지가 표시되면 POD에 연결하여 /mnt/data 디렉토리에서 Node 파일시스템을 찾을 수 있습니다. 연결하려면 다음 명령어를 사용하세요:

root@kitploit:~
kubectl exec -i -t cve202125741 -c mount-container -- /bin/sh

기술적 세부사항

익스플로잇은 2개의 부분으로 구성됩니다:

  • pod.yaml

    취약점을 악용하는 POD 구성이 포함된 YAML 파일입니다. 경쟁 조건 때문에 매번 작동하지 않으므로 루프로 실행해야 합니다.

  • run.sh

    pod.yaml을 배포하고 결과를 확인하며 필요한 경우 재배포하는 스크립트입니다.

RENAME_EXCHANGE 옵션을 사용하는 renameat2 바이너리로 다음 코드를 사용했습니다: https://gist.github.com/eatnumber1/f97ac7dad7b1f5a9721f

원한다면 직접 컴파일하여 pod.yaml에서 교체할 수 있습니다:

root@kitploit:~
gcc renameat2.c -o renameat2
base64 renameat2

문제 해결

시스템에 kubectl이 없는 경우

해결 방법:

  1. 공식 웹사이트에서 다운로드하여 시스템에 설치하세요
  2. 그것이 불가능하다면 run.sh를 다시 작성하고 kubectl을 사용하지 않고 Kubernetes API에 직접 HTTP 요청을 보내야 합니다

POD에서 /bin/sh를 실행할 권한이 없는 경우

해결 방법:

  1. /bin/sh를 TCP 포트에 바인딩하고 해당 포트에 연결할 수 있습니다.
  2. pod.yaml을 편집하고 필요한 명령을 추가할 수 있습니다. 배포 과정에서 실행됩니다.
도구 다운로드