Docker 빌드 시 adoptopenjdk/openjdk11:jre HIGH 취약점 해결 방법

2026. 1. 25. 23:18·개발 (Development)/Docker

요약

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
'개발 (Development)/Docker' 카테고리의 다른 글
  • [Docker] 이미지 CVE 대응 정리 CVE-2025-69720, CVE-2025-32434 (python:3.9-slim, PyTorch)
  • [Docker/Java] Java 기반 Docker 이미지에서 SQLite 관련 취약점 제거 방법 (CVE-2025-6965)
  • [Docker] Docker 환경에서 yarn 설치 시 인증서 오류 해결
  • [Docker] on-premise 환경에서 Docker Compose의 Build 문제 해결
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (249) N
      • 개발 (Development) (181)
        • Algorithm (1)
        • Angular (1)
        • AWS (7)
        • DeepSeek (2)
        • Docker (9)
        • Git (3)
        • Java (41)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (7)
        • PostgreSQL (40)
        • Python (35)
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (11)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (12)
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    python
    Linux
    파이썬
    리눅스 마스터 2급 2차
    springboot
    AWS
    ADsP
    pandas
    백준알고리즘
    docker
    백준자바
    MyBatis
    Linux master
    JSON
    Spring
    데이터분석
    JPA
    오답노트
    자바
    javascript
    백준
    DevOps
    리눅스 마스터 2급
    java
    Kubernetes
    Vue.js
    deepseek
    Kafka
    PostgreSQL
    백준온라인저지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
Docker 빌드 시 adoptopenjdk/openjdk11:jre HIGH 취약점 해결 방법
상단으로

티스토리툴바