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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-17106 — Docker `docker cp` 임의 파일 쓰기 취약점에 대한 PoC로, 심볼릭 링크 및 tar 추출 결함을 악용하여 호스트 바이너리를 덮어쓰거나 에이전트를 실행함으로써 컨테이너 탈출 및 루트 코드 실행을 유도합니다. | Kitploit
도구/GitHubGitHub/hackspeak/cve-2026-17106
Privilege EscalationContainer SecurityVulnerability AnalysisExploitationRed TeamingContainer Escape
GitHubhackspeak/cve-2026-17106

CVE-2026-17106

Docker `docker cp` 임의 파일 쓰기 취약점에 대한 PoC로, 심볼릭 링크 및 tar 추출 결함을 악용하여 호스트 바이너리를 덮어쓰거나 에이전트를 실행함으로써 컨테이너 탈출 및 루트 코드 실행을 유도합니다.

저장소 보기
11029일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-17106 — CopyEscape:docker cp 컨테이너에서 호스트로의 임의 파일 쓰기

HackSpeak 배포 이미지입니다. 이 저장소는 Imperva 레드팀(Ron Masas)이 공개한 CopyEscape PoC(CVE-2026-17106)의 배포 이미지이며, 코드는 업스트림과 일치합니다. 업스트림에 LICENSE가 포함되어 있지 않아 배포 관례에 따라 MIT License, Copyright (c) 2026 HackSpeak를 적용하며, 소스 코드의 저작권은 원저작자에게 있습니다.

⚠️ 보안 연구 및 승인된 테스트 전용입니다. Linux 데모는 /usr/bin/runc를 덮어쓰며, 일회용 VM에서 실행하고 검증 가능한 백업을 먼저 수행하세요. 승인되지 않은 환경이나 프로덕션 환경에서는 실행하지 마세요.

취약점 개요

**CopyEscape(CVE-2026-17106)**는 Docker docker cp(및 Docker Sandboxes의 sbx cp)에서 발생하는 컨테이너에서 호스트로의 임의 파일 쓰기 취약점으로, Imperva Red Team(Ron Masas)이 발견했습니다.

  • 메커니즘: docker cp는 직접적인 파일 시스템 복사가 아닙니다. daemon이 컨테이너 파일 시스템에서 filepath.WalkDir를 실행하여 tar 아카이브를 생성하고, CLI는 tar를 받은 뒤 클라이언트에서 압축을 해제하여 추출합니다.
  • 결함 1(아카이브 측 TOCTOU 레이스): daemon은 컨테이너 객체 상태를 잠그지만 컨테이너 내부 프로세스를 동결하지는 않습니다. 컨테이너 내부 프로세스는 walk 과정에서 디렉터리를 절대 심볼릭 링크로 교체할 수 있으며, 이로 인해 addTarFile이 다시 Lstat할 때 symlink로 보입니다 → tar 스트림에 불일치 항목이 나타납니다(symlink 헤더 다음에 "하위 파일" 항목이 이어짐).
  • 결함 2(추출 측 심볼릭 링크 처리): 추출 시 filepath.Join 이후의 구성 경로에 대해 경계 검사를 수행하지만, 실제 os.Symlink는 검사되지 않은 원본 hdr.Linkname을 사용합니다(절대 경로를 가리킬 수 있음). 이후 하위 파일을 추출할 때 커널이 해당 symlink를 따라가 사용자가 지정한 대상 외부에 파일을 씁니다.
  • 영향: 악성 컨테이너는 CLI를 유도하여 docker cp를 실행한 사용자의 권한으로 호스트에서 임의의 쓰기 가능한 파일을 생성/덮어쓸 수 있습니다. macOS에서는 셸 시작 스크립트를 덮어쓰고 ~/Library/LaunchAgents를 통한 영속화가 가능하며, Linux에서는 sudo docker cp로 /usr/bin/runc를 덮어써 이후 Docker 수명 주기 작업을 통해 root 코드 실행을 달성할 수 있습니다.

검증 및 패치 버전

  • 검증 버전: Docker Engine/CLI 29.6.1, Docker Desktop 4.81.0;
  • 패치 버전: Docker Engine/CLI 29.7.2, Docker Desktop 4.86.0, Docker Sandboxes 0.38.0(2026-08-06);
  • 임시 완화: 복사 전에 컨테이너를 중지하고, 신뢰할 수 없는 컨테이너에 sudo docker cp를 사용하지 마세요.

사용법

두 가지 데모(테스트 환경은 공식과 동일: Engine 29.6.1 / Desktop 4.81.0):

macOS(비파괴적, ~/pwnd 생성)

root@kitploit:~
cd macos
./demo-macos.sh

Linux(영향도 높음, /usr/bin/runc 덮어쓰기)

root@kitploit:~
cd linux
# 按 linux/ 内说明构建镜像并运行;⚠️ 覆盖 runc 前务必备份

자세한 단계는 이 저장소의 macos/ 및 linux/ 하위 디렉터리에 있는 설명 파일을 참조하세요.

면책 조항

  • 보안 연구, 취약점 검증 및 방어적 테스트에만 사용하세요. 격리된 환경에서 실행하고, 승인되지 않은 시스템에는 사용하지 마세요.
  • Linux 데모는 호스트의 중요한 바이너리(/usr/bin/runc)를 덮어쓰므로, 반드시 일회용 VM에서 실행하고 백업하세요.

참고 링크

  • 업스트림 소스 저장소(이 PoC의 출처): https://github.com/masasron/CopyEscape-CVE-2026-17106
  • Imperva 공식 블로그: CopyEscape: Taking Over Docker Hosts with docker cp — https://www.imperva.com/blog/copyescape-taking-over-docker-hosts-with-docker-cp/
  • 관련 보도: 360 취약점 연구소가 재현을 확인함(CVE-2026-17106)
도구 다운로드