Docker 보안 공지
Docker 보안 공지
Docker 제품의 보안 취약점과 업데이트 공지를 안내해요. 보안, CVE, 취약점에 관한 Docker의 공식 발표를 다룹니다.
출처: 문서
본문
Docker Sandboxes 0.42.0 보안 업데이트: CVE-2026-77179 및 CVE-2026-79994
Docker Sandboxes의 두 취약점이 0.42.0 릴리스에서 9월 7일에 수정됐어요.
- CVE-2026-77179: macOS의 virtio-fs 호스트 서버가 저장된 경로에서 연결되지 않은(unlinked) 파일을 다시 열 때 심볼릭 링크를 따랐던 문제를 해결했어요. 악의적인 게스트가 부모 디렉터리를 심볼릭 링크로 교체해 공유 작업 공간을 벗어나 VMM 사용자로서 임의의 호스트 파일을 읽거나 수정해 호스트에서 코드 실행으로 이어질 수 있었어요. macOS에서 0.28.0 이상 0.42.0 미만 버전이 영향받아요. [Critical]
- CVE-2026-79994: 게스트→호스트 유닉스 도메인 소켓 릴레이가 소켓 경로가 승인된 작업 공간 안에 있는지 확인했지만 경로 이름으로 다시 연결했던 문제를 해결했어요. 악의적인 게스트가 검사와 연결 사이에 중간 디렉터리를 심볼릭 링크로 교체해, 호스트가 공유 작업 공간 밖의 임의의 AF_UNIX 소켓에 연결하게 하고 그 소켓이 제공하는 데이터나 호스트 측 기능을 노출할 수 있었어요. 0.37.0 이상 0.42.0 미만 버전이 영향받아요. [High]
0.42.0 이상으로 업데이트할 수 없다면 클론 모드를 사용하고 읽기-쓰기 호스트 마운트 추가를 피하세요.
Docker Desktop 4.86.0 보안 업데이트: CVE-2026-17106
Docker Desktop의 취약점이 4.86.0 릴리스에서 8월 10일에 수정됐어요. docker container cp의 대상 이스케이프(destination-escape) 결함인 CVE-2026-17106을 해결했어요.
Docker Desktop 4.71.0 보안 업데이트: CVE-2026-5843
Docker Desktop의 취약점이 4.71.0 릴리스에서 4월 27일에 수정됐어요. Docker Model Runner MLX 추론 백엔드의 컨테이너→호스트 코드 실행인 CVE-2026-5843을 해결했어요.
Docker Desktop 4.68.0 보안 업데이트: CVE-2026-5817
Docker Desktop의 취약점이 4.68.0 릴리스에서 4월 7일에 수정됐어요. Docker Model Runner vllm-metal 추론 백엔드의 컨테이너→호스트 코드 실행인 CVE-2026-5817을 해결했어요.
Docker Desktop 4.67.0 보안 업데이트: CVE-2026-33990
Docker Desktop의 취약점이 4.67.0 릴리스에서 3월 30일에 수정됐어요. Docker Model Runner OCI Registry Client의 SSRF인 CVE-2026-33990을 해결했어요.
Docker Desktop 4.62.0 보안 업데이트: CVE-2026-28400
Docker Desktop의 취약점이 4.62.0 릴리스에서 2월 23일에 수정됐어요. Docker Model Runner의 런타임 플래그 주입인 CVE-2026-28400을 해결했어요.
Docker Desktop 4.62.0 보안 업데이트: CVE-2026-2664
Docker Desktop의 취약점이 4.62.0 릴리스에서 2월 23일에 수정됐어요. gRPC-FUSE 커널 모듈의 경계 밖 읽기(out of bounds read)인 CVE-2026-2664를 해결했어요.
Docker Desktop 4.54.0 보안 업데이트: CVE-2025-13743
Docker Desktop의 취약점이 4.54.0 릴리스에서 12월 4일에 수정됐어요. 오류 객체 직렬화로 인해 Docker Desktop 진단 번들에 만료된 Hub PAT가 로그 출력에 포함됐던 CVE-2025-13743을 해결했어요.
Docker Desktop 4.49.0 보안 업데이트: CVE-2025-9164
Windows용 Docker Desktop의 취약점이 4.49.0 릴리스에서 10월 23일에 수정됐어요. 불안정한 DLL 검색 순서로 인해 설치 프로그램이 DLL 하이재킹에 취약했던 CVE-2025-9164를 해결했어요. 설치 프로그램이 시스템 디렉터리를 확인하기 전에 사용자의 Downloads 폴더에서 필요한 DLL을 검색해, 악성 DLL 배치를 통한 로컬 권한 상승을 허용했어요.
Docker Desktop 4.47.0 보안 업데이트: CVE-2025-10657
Docker Desktop의 취약점이 4.47.0 릴리스에서 9월 25일에 수정됐어요. Enhanced Container Isolation Docker Socket 명령 제한 기능이 4.46.0에서만 제대로 동작하지 않았던(구성이 무시됐던) CVE-2025-10657을 해결했어요.
Docker Desktop 4.44.3 보안 업데이트: CVE-2025-9074
Docker Desktop의 취약점이 4.44.3 릴리스에서 8월 20일에 수정됐어요. Docker Desktop에서 실행 중인 악성 컨테이너가 Docker 소켓을 마운트하지 않아도 Docker Engine에 접근해 추가 컨테이너를 실행할 수 있었던 CVE-2025-9074를 해결했어요. 이는 호스트 시스템의 사용자 파일에 대한 무단 접근을 허용할 수 있었어요. Enhanced Container Isolation(ECI)은 이 취약점을 완화하지 못해요.
Docker Desktop 4.44.0 보안 업데이트: CVE-2025-23266
CDI 모드의 NVIDIA Container Toolkit 1.17.7까지를 영향받게 하는 치명적 취약점 CVE-2025-23266을 인지하고 있어요. Docker Desktop은 영향받지 않는 1.17.8을 포함해요. 하지만 이전 툴킷 버전을 번들한 구형 Docker Desktop은 CDI 모드가 수동으로 활성화된 경우 영향받을 수 있어요. 패치된 버전을 쓰려면 Docker Desktop 4.44 이상으로 업그레이드하세요.
Docker Desktop 4.43.0 보안 업데이트: CVE-2025-6587
Docker Desktop의 취약점이 4.43.0 릴리스에서 7월 3일에 수정됐어요. 민감한 시스템 환경 변수가 Docker Desktop 진단 로그에 포함돼 잠재적 시크릿 노출을 허용했던 CVE-2025-6587을 해결했어요.
Docker Desktop 4.41.0 보안 업데이트: CVE-2025-3224, CVE-2025-4095, CVE-2025-3911
Docker Desktop의 세 취약점이 4.41.0 릴리스에서 4월 28일에 수정됐어요.
- CVE-2025-3224: 사용자 머신에 접근한 공격자가 Docker Desktop 업데이트 시 권한 상승(elevation of privilege)을 수행할 수 있었던 문제 해결
- CVE-2025-4095: macOS 구성 프로필 사용 시 Registry Access Management(RAM) 정책이 적용되지 않아 승인되지 않은 레지스트리에서 이미지를 pull할 수 있었던 문제 해결
- CVE-2025-3911: 사용자 머신에 대한 읽기 접근이 있는 공격자가 Docker Desktop 로그 파일에서 실행 중인 컨테이너용 환경 변수를 포함한 민감 정보를 얻을 수 있었던 문제 해결
Docker Desktop 4.41.0으로 업데이트할 것을 강력히 권장해요.
Docker Desktop 4.34.2 보안 업데이트: CVE-2024-8695 및 CVE-2024-8696
Docker Extensions와 관련된 두 원격 코드 실행(RCE) 취약점이 Cure53에 의해 보고됐고 4.34.2 릴리스에서 9월 12일에 수정됐어요.
- CVE-2024-8695: 4.34.2 이전 Docker Desktop에서 악의적인 확장이 조작된 확장 설명/변경 로그를 통해 악용할 수 있는 원격 코드 실행(RCE) 취약점 [Critical]
- CVE-2024-8696: 4.34.2 이전 Docker Desktop에서 악의적인 확장이 조작된 publisher-url/additional-urls를 통해 악용할 수 있는 원격 코드 실행(RCE) 취약점 [High]
Extensions Marketplace에서 이 취약점을 악용하는 기존 확장은 발견되지 않았어요. Docker 팀은 새 확장 게시 요청을 면밀히 검토할 거예요. Docker Desktop 4.34.2로 업데이트할 것을 강력히 권장해요. 신속히 업데이트할 수 없다면 대안으로 Docker Extensions를 비활성화할 수 있어요.
SSO 적용 시 CLI 비밀번호 로그인 사용 중단
SSO 적용이 처음 도입됐을 때 Docker는 Docker Hub 인증 시 CLI에서 비밀번호 사용을 계속 허용하는 유예 기간을 제공했어요. 이는 조직이 SSO 적용을 더 쉽게 사용할 수 있게 하기 위함이었어요. 관리자는 유예 기간 종료를 대비해 CLI를 사용하는 사용자가 Personal Access Tokens로 전환하도록 권장했어요.
2024년 9월 16일에 유예 기간이 끝났고, SSO가 적용된 환경에서는 비밀번호로 더 이상 Docker CLI를 통해 Docker Hub에 인증할 수 없어요. 영향받는 사용자는 계속 로그인하려면 PAT를 사용해야 해요. Docker는 개발자와 조직을 위한 가장 안전한 경험을 원하며, 이 사용 중단은 그 방향의 필수 단계예요.
SOC 2 Type 2 인증 및 ISO 27001 인증
Docker는 예외나 주요 부적합 사항 없이 SOC 2 Type 2 attestation과 ISO 27001 인증을 받았음을 발표하게 되어 기쁘게 생각해요. 보안은 Docker 운영의 기본 기둥이며 회사 사명과 전략에 내장되어 있어요. Docker 제품은 사용자 커뮤니티의 핵심이며, SOC 2 Type 2 attestation과 ISO 27001 인증은 사용자 기반에 대한 Docker의 지속적인 보안 약속을 보여줘요. 자세한 내용은 Blog 공지를 참고해요.
Docker 보안 권고: runc, BuildKit, Moby의 여러 취약점
Docker는 소프트웨어의 보안과 무결성, 그리고 사용자의 신뢰를 최우선으로 해요. Snyk Labs의 보안 연구원들이 컨테이너 생태계의 보안 취약점 4가지를 식별·보고했어요. 그중 하나인 CVE-2024-21626은 runc 컨테이너 런타임에, 나머지 3개(CVE-2024-23651, CVE-2024-23652, CVE-2024-23653)는 BuildKit에 영향이 있어요. 팀은 보고자 및 오픈소스 유지관리자들과 협력해 필요한 수정을 조정·구현해 왔어요.
1월 31일에 runc, BuildKit, Moby의 패치 버전을 게시했고, 2월 1일에는 이를 해결하는 Docker Desktop 업데이트를 출시했어요. 또한 최신 BuildKit과 Moby 릴리스에는 독립 연구원과 Docker 내부 연구를 통해 각각 발견된 CVE-2024-23650과 CVE-2024-24557 수정이 포함됐어요.
영향받는 버전:
| 구성 요소 | 영향받는 버전 |
|---|---|
| runc | <= 1.1.11 |
| BuildKit | <= 0.12.4 |
| Moby (Docker Engine) | <= 25.0.1, <= 24.0.8 |
| Docker Desktop | <= 4.27.0 |
영향받는 버전을 쓰고 있다면? runc, BuildKit, Moby, Docker Desktop의 영향받는 버전을 사용 중이라면 다음 표에 연결된 최신 버전으로 업데이트해야 해요.
패치 버전:
| 구성 요소 | 패치 버전 |
|---|---|
| runc | >= 1.1.12 |
| BuildKit | >= 0.12.5 |
| Moby (Docker Engine) | >= 25.0.2, >= 24.0.9 |
| Docker Desktop | >= 4.27.1 |
영향받지 않는 버전으로 신속히 업데이트할 수 없다면 다음 모범 사례로 위험을 완화해요.
- 신뢰할 수 있는 Docker 이미지(예: Docker Official Images)만 사용
- 신뢰할 수 없는 소스나 신뢰할 수 없는 Dockerfile에서 이미지를 빌드하지 않기
- Docker Desktop을 사용하는 Docker Business 고객으로서 4.27.1로 업데이트할 수 없고 정책이 로컬 또는 조직 정책 소스를 사용하는 경우, Hardened Docker Desktop 기능을 활성화할 것:
- Enhanced Container Isolation: 악성 이미지의 컨테이너 실행 시 CVE-2024-21626의 영향을 완화
- Image Access Management 및 Registry Access Management: 조직이 사용자가 접근할 수 있는 이미지와 리포지토리를 제어
CVE-2024-23650, CVE-2024-23651, CVE-2024-23652, CVE-2024-23653의 경우 신뢰할 수 없는 소스의 BuildKit 프론트엔드를 사용하지 마세요. 프론트엔드 이미지는 보통 Dockerfile의 #syntax 줄이나 buildctl build 명령의 --frontend 플래그로 지정돼요.
CVE-2024-24557을 완화하려면 이미지 빌드 시 BuildKit을 사용하거나 캐싱을 비활성화해요. CLI에서는 DOCKER_BUILDKIT=1 환경 변수(Moby v23.0 이상에서 Buildx 플러그인이 설치된 경우 기본값) 또는 --no-cache 플래그로 할 수 있어요. HTTP API를 직접 또는 클라이언트를 통해 사용한다면 /build API 엔드포인트에서 nocache를 true로 설정하거나 version을 2로 설정할 수 있어요.
기술적 세부 사항과 영향
CVE-2024-21626 (High): runc v1.1.11 이하에서, 유출된 특정 파일 디스크립터로 인해 공격자는 새로 생성된 컨테이너 프로세스(runc exec에서)가 호스트 파일시스템 네임스페이스에 작업 디렉터리를 갖게 하거나, 사용자가 악성 이미지를 실행하도록 속여 컨테이너 프로세스가 runc run을 통해 호스트 파일시스템에 접근하게 함으로써 호스트 파일시스템에 접근할 수 있어요. 공격은 반임의적 호스트 바이너리를 덮어쓰도록 변형돼 완전한 컨테이너 탈출로 이어질 수 있어요. Docker나 Kubernetes 같은 고수준 런타임을 사용할 때는 추가 구성 없이 악성 컨테이너 이미지를 실행하거나 컨테이너 시작 시 특정 workdir 옵션을 전달해 악용할 수 있어요. Docker의 경우 Dockerfile 안에서도 악용될 수 있어요. runc v1.1.12에서 수정됐어요.
CVE-2024-23651 (High): BuildKit v0.12.4 이하에서, 서브경로가 있는 동일한 캐시 마운트를 공유하는 두 악성 빌드 단계가 병렬로 실행되면 경쟁 조건이 발생해 호스트 시스템의 파일이 빌드 컨테이너에 접근 가능해질 수 있어요. 사용자가 악성 프로젝트의 Dockerfile을 빌드하려 할 때만 발생해요. BuildKit v0.12.5에서 수정됐어요.
CVE-2024-23652 (High): BuildKit v0.12.4 이하에서, 악성 BuildKit 프론트엔드나 RUN --mount를 사용하는 Dockerfile이 마운트 지점용으로 생성된 빈 파일을 제거하는 기능을 속여 호스트에서 컨테이너 밖의 파일을 제거할 수 있어요. 사용자가 악성 Dockerfile을 쓸 때만 발생해요. BuildKit v0.12.5에서 수정됐어요.
CVE-2024-23653 (High): 빌드 단계로 컨테이너를 실행하는 것 외에도 BuildKit은 빌드된 이미지를 기반으로 인터랙티브 컨테이너를 실행하는 API를 제공해요. BuildKit v0.12.4 이하에서 이 API로 BuildKit이 승격된 권한으로 컨테이너를 실행하도록 요청할 수 있어요. 정상적으로는 security.insecure 엔타이틀먼트가 buildkitd 구성과 빌드 요청을 초기화하는 사용자 양쪽에 의해 활성화된 경우에만 허용돼요. BuildKit v0.12.5에서 수정됐어요.
CVE-2024-23650 (Medium): BuildKit v0.12.4 이하에서, 악성 BuildKit 클라이언트나 프론트엔드가 BuildKit 데몬을 panic으로 충돌시키는 요청을 만들 수 있어요. BuildKit v0.12.5에서 수정됐어요.
CVE-2024-24557 (Medium): Moby v25.0.1 이하, v24.0.8 이하에서, 클래식 빌더 캐시 시스템은 이미지가 FROM scratch로 빌드될 때 캐시 오염에 취약해요. 또한 일부 지시문(가장 중요한 것은 HEALTHCHECK와 ONBUILD)의 변경은 캐시 미스를 유발하지 않아요. 사용자가 쓰는 Dockerfile을 아는 공격자는 어떤 빌드 단계에 대해 유효한 캐시 후보로 간주되는 특수 조작 이미지를 pull하도록 해 캐시를 오염시킬 수 있어요. Moby v25.0.2 이상, v24.0.9 이상에서 수정됐어요.
Docker 제품은 어떻게 영향받나요?
Docker Desktop: Docker Desktop v4.27.0 이하가 영향받아요. v4.27.1은 2월 1일에 출시됐고 runc, BuildKit, dockerd 바이너리 패치를 포함해요. 이 새 버전으로 업데이트하는 것과 함께, 모든 Docker 사용자는 신중하게 Docker 이미지와 Dockerfile을 사용하고 빌드에 신뢰할 수 있는 콘텐츠만 사용하기를 권장해요. 항상 운영체제(Windows, Linux, Mac)에 대한 Docker Desktop 시스템 요구사항을 확인해 업데이트 후 완전한 호환성을 보장하세요.
Docker Build Cloud: 새 Docker Build Cloud 빌더 인스턴스는 최신 Docker Engine과 BuildKit 버전으로 프로비저닝되므로 이 CVE들의 영향을 받지 않아요. 기존 Docker Build Cloud 빌더에도 업데이트가 배포됐어요. 다른 Docker 제품은 이 취약점의 영향을 받지 않아요.
권고 링크: runc CVE-2024-21626, BuildKit CVE-2024-23650 / CVE-2024-23651 / CVE-2024-23652 / CVE-2024-23653, Moby CVE-2024-24557
Text4Shell CVE-2022-42889
널리 쓰이는 Apache Commons Text 라이브러리에서 CVE-2022-42889이 발견됐어요. 이 라이브러리의 1.10.0 미만 버전이 이 취약점의 영향을 받아요. 최신 버전의 Apache Commons Text로 업데이트할 것을 강력히 권장해요.
2021년 10월 21일 12:00 UTC 이후에 트리거된 Docker Hub 보안 스캔은 이제 Text4Shell CVE를 올바르게 식별해요. 이 날짜 이전의 스캔은 이 취약점의 상태를 반영하지 않아요. 따라서 새 이미지를 Docker Hub에 push해 스캔을 트리거해 취약점 보고서에서 Text4Shell CVE의 상태를 볼 것을 권장해요. 자세한 지침은 Scan images on Docker Hub를 참고해요.
다음 Docker Official Images에 취약한 버전의 Apache Commons Text가 포함돼 있을 수 있어요: bonita, couchbase, geonetwork, neo4j, sliverpeas, solr, xwiki. 이 이미지들의 Apache Commons Text를 최신 버전으로 업데이트했어요. 일부 이미지는 다른 이유로 취약하지 않을 수 있어요. 업스트림 웹사이트에 게시된 지침도 검토할 것을 권장해요.
Log4j 2 CVE-2021-44228
매우 흔한 Java 로깅 라이브러리인 Log4j 2의 CVE-2021-44228 취약점은, 공격자가 쉽게 접근할 수 있는 컨텍스트에서 자주 발생하는 원격 코드 실행을 허용해요. 예를 들어 Minecraft 서버에서 채팅 로그에 입력된 명령이 로거에 전송되면서 발견됐어요. 로깅 라이브러리가 워낙 널리 사용되고 악용이 간단할 수 있어 매우 심각한 취약점이에요. 많은 오픈소스 유지관리자가 소프트웨어 생태계의 수정·업데이트로 열심히 작업하고 있어요.
취약한 Log4j 2 버전은 2.0부터 2.14.1까지(포함)예요. 첫 수정 버전은 2.15.0이에요. 가능하면 최신 버전으로 업데이트할 것을 강력히 권장해요. 2.0 이전 버전을 쓰고 있다면 취약하지 않아요. 이 버전을 사용해도 구성이 이미 완화하거나, 로그에 사용자 입력이 포함되지 않아 취약하지 않을 수 있어요. 하지만 모든 로그 경로와 그 입력 출처를 상세히 이해하지 않고는 검증하기 어려울 수 있어요. 그러니 취약한 버전을 쓰는 모든 코드는 업그레이드하는 게 좋아요.
CVE-2021-45046: CVE-2021-44228의 업데이트로, 2.15.0에서 만든 수정이 불완전했어요. 추가 문제가 CVE-2021-45046과 CVE-2021-45105로 추적되고 있어요. 더 완전한 수정을 위해 가능하면 2.17.0으로 업데이트할 것을 권장해요.
2021년 12월 13일 17:00 UTC 이후에 트리거된 Docker Hub 보안 스캔은 이제 Log4j 2 CVE를 올바르게 식별해요. 이 날짜 이전의 스캔은 이 취약점의 상태를 반영하지 않아요. 따라서 새 이미지를 push해 Log4j 2 CVE의 상태를 취약점 보고서에서 볼 것을 권장해요.
다음 Docker Official Images에 취약한 버전의 Log4j 2가 포함돼 있을 수 있어요. 이 이미지들의 Log4j 2를 최신 버전으로 업데이트했어요.
| 리포지토리 | 패치 버전 | 추가 문서 |
|---|---|---|
| couchbase | 7.0.3 | Couchbase 블로그 |
| elasticsearch | 6.8.22, 7.16.2 | Elasticsearch 공지 |
| flink | 1.11.6, 1.12.7, 1.13.5, 1.14.2 | Flink의 Log4j CVE 조언 |
| geonetwork | 3.10.10 | Geonetwork GitHub 논의 |
| lightstreamer | 정보 대기 | 정보 대기 |
| logstash | 6.8.22, 7.16.2 | Elasticsearch 공지 |
| neo4j | 4.4.2 | Neo4j 공지 |
| solr | 8.11.1 | Solr 보안 뉴스 |
| sonarqube | 8.9.5, 9.2.2 | SonarQube 공지 |
| storm | 정보 대기 | 정보 대기 |
참고: 일부 스캐너가 xwiki 이미지를 취약하다고 감지할 수 있지만, 저자는 API jar에 취약점이 없으므로 이미지가 Log4j 2 CVE에 취약하지 않다고 생각해요. Nuxeo 이미지는 사용 중단(deprecated)되었고 업데이트되지 않을 거예요.