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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
container-cve-2021-22555 — CVE-2021-22555 리눅스 권한 상승 취약점을 위한 컨테이너화된 재현 도구로, seccomp 완화 프로필 및 Kubernetes와 OpenShift 클러스터 배포 가이드를 포함합니다. | Kitploit
도구/GitHubGitHub/cgwalters/container-cve-2021-22555
Privilege EscalationContainer SecurityVulnerability AnalysisExploitationCloud SecurityLearning & Education
GitHubcgwalters/container-cve-2021-22555

container-cve-2021-22555

CVE-2021-22555 리눅스 권한 상승 취약점을 위한 컨테이너화된 재현 도구로, seccomp 완화 프로필 및 Kubernetes와 OpenShift 클러스터 배포 가이드를 포함합니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

CVE-2021-22555 재현기를 컨테이너로

먼저, 이 저장소는 편리한 사전 빌드 컨테이너로 여기에서 익스플로잇 코드를 가져옵니다: https://github.com/google/security-research/tree/master/pocs/linux/cve-2021-22555

사전 빌드 컨테이너: quay.io/cgwalters/cve-2021-22555

완화: seccomp 프로필

강력한 완화 방법은 clone(CLONE_NEWUSER)을 거부하는 seccomp를 활성화하는 것입니다. 상위 Kubernetes 문서에는 이에 대한 정보가 있지만, 정책을 노드에 배포하는 것은 사용자에게 맡깁니다. OpenShift 4에서는 이를 처리할 수 있는 machine-config-operator가 있습니다.

Seccomp는 공식 문서에서 실제로 논의되지 않습니다. 하지만 보안 가이드에서는 최소한 이 중 일부를 언급하고 있으며, 이 블로그에서도 마찬가지입니다.

참고: crio/podman 런타임/기본 정책과 docker 비교

cri-o 4.7에는 기본 seccomp 정책이 함께 제공되지만 기본적으로 활성화되지 않습니다. podman과 docker 모두 정책과 함께 제공되며, 기본적으로 활성화되어 있습니다 (하지만 서로 다릅니다, 아래 참조).

cri-o 정책은 기본적으로 clone(CLONE_NEWUSER)을 거부하지 않습니다 - 이는 podman 정책에서도 마찬가지입니다. 그러나 docker 기본 정책은 clone(CLONE_NEWUSER)을 거부합니다:

root@kitploit:~
[root@cosa-devsh ~]# rpm -q podman moby-engine
podman-3.1.2-1.fc33.x86_64
moby-engine-19.03.13-1.ce.git4484c46.fc33.x86_64
[root@cosa-devsh ~]# podman run --rm -ti registry.fedoraproject.org/fedora:34 /bin/sh -c 'unshare -U --keep-caps true'
[root@cosa-devsh ~]# echo $?
0
[root@cosa-devsh ~]# docker run --rm -ti registry.fedoraproject.org/fedora:34 /bin/sh -c 'unshare -U --keep-caps true'
unshare: unshare failed: Operation not permitted
errchan: json: cannot unmarshal array into Go struct field systemdEventMessage.MESSAGE of type string
[root@cosa-devsh ~]# echo $?
1
[root@cosa-devsh ~]# 

즉, docker는 기본적으로 이 취약점에 취약하지 않지만, podman과 cri-o는 취약합니다. (TODO: containerd 확인)

더 강력한 seccomp 정책 찾기 및 배포

openshift/seccomp-for-fun-and-profit 블로그 항목에서 이 중 일부를 논의하고, 작성자가 생성한 프로필로 연결됩니다. 이 정책은 clone(CLONE_NEWUSER)을 거부합니다.

편의를 위해 이 저장소에는 more-restricted.json에 해당 프로필의 복사본과, 작업자에게 해당 프로필을 배포할 MachineConfig 객체를 생성하는 Butane 파일이 포함되어 있습니다.

예제 파드 파일을 사용하세요. 이 파일에는 다음이 포함되어 있습니다:

root@kitploit:~
securityContext:
  seccompProfile:
    type: Localhost
    localhostProfile: more-restricted.json

결과는 다음과 같습니다:

root@kitploit:~
$ oc logs pod/cve-2021-22555
[+] Linux Privilege Escalation by theflow@ - 2021

[+] STAGE 0: Initialization
[*] Setting up namespace sandbox...
[-] unshare(CLONE_NEWUSER): Operation not permitted

이렇게 하면 익스플로잇에 도달할 수 없게 됩니다.

하지만 이는 파드가 옵트인해야 합니다. 여전히 TODO: SecurityContextConstraint를 통해 seccomp 정책을 필수로 만들 수 있는지, 아니면 변경 어드미션 웹훅이 필요한지 탐색해야 합니다.

도구 다운로드