요약
Docker 빌드 과정에서 adoptopenjdk/openjdk11:jre 베이스 이미지를 사용할 경우 다수의 HIGH 등급 CVE가 탐지되는 문제는, 이미지 내부 설정 문제가 아니라 베이스 이미지 자체가 더 이상 유지보수되지 않기 때문이다. 이 문제는 공식 후속 이미지인 eclipse-temurin으로 교체하는 방식으로 해결할 수 있다.
문제 상황
컨테이너 보안 스캐너(trivy, grype 등)를 통해 Docker 이미지를 검사하던 중, 아래와 같은 CVE 목록이 지속적으로 탐지되었다.
• CVE-2025-65018 (HIGH)
• CVE-2025-64720 (HIGH)
• CVE-2025-9230 (HIGH)
• CVE-2023-4039 (MEDIUM)
• 기타 다수
공통점은 모두 베이스 이미지가 adoptopenjdk/openjdk11:jre인 경우 발생한다는 점이었다.
원인 분석
adoptopenjdk/openjdk Docker 이미지는 다음과 같은 상태이다.
• AdoptOpenJDK 프로젝트 자체는 종료됨
• Docker Hub 이미지 업데이트는 2021년 이후 중단
• OS 패키지 및 JRE 보안 패치가 더 이상 반영되지 않음
따라서 Dockerfile 내부에서 apt-get upgrade 등을 수행하더라도, 근본적으로 CVE를 제거할 수 없는 구조이다.
해결 방법 개요
해결의 핵심은 유지보수 중인 공식 후속 OpenJDK 이미지로 베이스 이미지를 교체하는 것이다.
권장 대체 이미지
eclipse-temurin:11-jre-jammy
• AdoptOpenJDK의 공식 후속 프로젝트
• Ubuntu 22.04 LTS(jammy) 기반
• JRE 및 OS 보안 패치 지속 반영
• 기업 환경에서도 널리 사용 중Dockerfile 수정 예시
기존 Dockerfile
FROM adoptopenjdk/openjdk11:jre
변경 후 Dockerfile
FROM eclipse-temurin:11-jre-jammy
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y autoremove \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY build/libs/app.jar /app/app.jar
ENTRYPOINT ["java","-jar","/app/app.jar"]
이 변경만으로도 대부분의 HIGH 등급 CVE가 제거되거나 크게 감소한다.
이미지 Pull 방법
docker pull eclipse-temurin:11-jre-jammy
빌드 시 항상 최신 이미지를 사용하려면 다음 옵션을 권장한다.
docker build --pull --no-cache -t my-app .
추가 고려 사항
JRE vs JDK
• 런타임만 필요: -jre-
• 빌드, 디버깅 필요: -jdk-
보안 스캔 결과가 남는 경우
• OS 패키지 기반 CVE → apt-get upgrade로 해결 가능
• JRE 기반 CVE → Temurin의 더 최신 11.0.x 태그로 업그레이드 필요
결론 및 정리
• adoptopenjdk/openjdk11:jre의 HIGH 취약점은 이미지 내부 문제가 아니라 유지보수 종료가 원인
• 컨테이너 보안 관점에서 해당 이미지는 더 이상 사용하기 어렵다
• 공식 후속 이미지인 eclipse-temurin:11-jre-jammy로 교체하는 것이 가장 현실적이고 안전한 해결책이다
• 베이스 이미지 선택은 애플리케이션 코드만큼이나 중요한 보안 요소임을 다시 한번 확인했다'개발 (Development) > Docker' 카테고리의 다른 글
| [Docker] 이미지 CVE 대응 정리 CVE-2025-69720, CVE-2025-32434 (python:3.9-slim, PyTorch) (0) | 2026.04.03 |
|---|---|
| [Docker/Java] Java 기반 Docker 이미지에서 SQLite 관련 취약점 제거 방법 (CVE-2025-6965) (4) | 2025.08.15 |
| [Docker] Docker 환경에서 yarn 설치 시 인증서 오류 해결 (0) | 2025.06.01 |
| [Docker] on-premise 환경에서 Docker Compose의 Build 문제 해결 (0) | 2025.06.01 |
| [Docker] Alpine 이미지 SSL 인증 오류 해결 (certificate verify failed) (0) | 2025.06.01 |