Sonatype Nexus Repository Manager 3 Java Expression Language(EL) 주입 기반 원격 코드 실행 취약점 (CVE-2020-10199) 분석 및 대응 가이드
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTSonatype Nexus Repository Manager 3.21.1 이하 버전
인증된 공격자(낮은 권한)가 특수하게 조작된 요청을 전송하여 서버 권한으로 임의의 시스템 명령을 실행할 수 있습니다.
Nexus Repository Manager를 최신 안정 버전(3.21.2 이상)으로 즉시 업그레이드하십시오.
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
패치 및 우회 명령어1. 공식 보안 패치 및 버전 업그레이드 명령어
가장 확실한 해결책은 취약점이 해결된 3.21.2 이상 버전으로 업그레이드하는 것입니다. Docker 환경을 사용하는 경우 아래 명령어를 통해 최신 이미지로 업데이트할 수 있습니다.
# Docker 환경에서의 Nexus 3 업그레이드 예시
docker pull sonatype/nexus3:3.21.2
docker stop nexus-container
docker run -d -p 8081:8081 --name nexus-new -v nexus-data:/nexus-data sonatype/nexus3:3.21.22. 패치 전 임시 완화(Workaround) 및 접근 제어 설정
즉각적인 업그레이드가 어려운 경우, 신뢰할 수 없는 IP 대역으로부터의 Nexus 관리자 및 API 포트(기본 8081) 접근을 방화벽 수준에서 차단하십시오. Nginx 리버스 프록시를 사용하는 경우 아래와 같이 특정 API 경로에 대한 접근을 제한할 수 있습니다.
# Nginx 리버스 프록시 접근 제어 설정 예시
server {
listen 80;
server_name nexus.internal.local;
location /service/rest/ {
allow 10.0.0.0/8; # 내부 신뢰 네트워크만 허용
deny all;
proxy_pass http://localhost:8081;
}
}3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트
Nexus 요청 로그(request.log)에서 Java EL 주입 공격 시도 패턴(예: $ 기호 및 Ognl, ProcessBuilder, Runtime 등의 문자열)을 탐지하는 스크립트입니다.
# Nexus 요청 로그에서 악성 Java EL 패턴 검색
grep -Ei '\$\{.*(runtime|processbuilder|classloader|getmethod).*\}' /opt/sonatype/sonatype-work/nexus3/log/request.log내 GitHub/GitLab 레포지토리에 이 취약한 패키지가 숨어 있는지 30초 만에 스캔하세요
간접 의존성(Transitive Dependency)에 포함된 취약점은 수동 확인이 불가능합니다. Git 연동 한 번으로 취약 버전 탐지부터 호환성을 유지하는 최소 버전 업그레이드 PR까지 자동 생성하세요.
취약점 발생 원리 및 공격 메커니즘
1. 취약점 개요 및 발생 원인 (Root Cause)
본 취약점(CVE-2020-10199)은 Sonatype Nexus Repository Manager 3에서 발생하는 Java Expression Language(EL) 주입 취약점입니다. 시스템 내부에서 사용자 입력값을 검증 및 필터링하지 않고 Java EL 엔진으로 전달하여 처리하는 과정에서 발생합니다. 공격자는 이를 악용하여 애플리케이션 컨텍스트 내에서 임의의 Java 코드를 실행할 수 있는 권한을 획득하게 됩니다.
2. 공격 메커니즘 및 익스플로잇 시나리오
공격자는 Nexus Repository Manager에 로그인할 수 있는 최소한의 권한(예: 일반 사용자 계정)을 보유한 상태에서, API 요청 파라미터나 설정 필드에 Java EL 구문(예: ${...})을 삽입하여 전송합니다. 서버 측의 템플릿 엔진 또는 유효성 검증 모듈이 이 입력을 적절한 이스케이프 처리 없이 평가(Evaluation)하면서, 공격자가 주입한 악성 Java 객체 및 메서드 호출이 실행됩니다. 이는 최종적으로 OS 명령 실행(RCE)으로 이어집니다.
3. 비즈니스 및 인프라 파급 영향
Nexus Repository는 기업의 핵심 소프트웨어 아티팩트와 의존성 라이브러리를 관리하는 중추적인 DevSecOps 인프라입니다. 본 취약점이 악용될 경우, 공격자는 빌드 아티팩트를 변조하여 공급망 공격(Supply Chain Attack)을 감행하거나, 내부 소스 코드 및 기밀 자산을 탈취할 수 있습니다. 또한 CISA KEV(Known Exploited Vulnerabilities)에 등재되어 실제 야생(In-the-Wild)에서 적극적으로 악용되고 있으므로 신속한 조치가 필수적입니다.
공식 보안 권고문 및 참조 링크
Sonatype Nexus Repository before 3.21.2 allows JavaEL Injection (issue 1 of 2).
자주 묻는 실무 질문 (FAQ — CVE-2020-10199)
FAQQ1. CVE-2020-10199 취약점의 위험도와 실제 악용 가능성은 어느 정도입니까?
CVE-2020-10199의 기본 점수는 CVSS 8.8 (HIGH)이며, 향후 30일 내 실제 악용 확률을 나타내는 EPSS 점수는 99.1%입니다. 현재 미국 CISA KEV(실제 악용이 확인된 취약점 카탈로그)에 등재되어 있으므로 최우선 긴급 패치가 필요합니다.
Q2. CVE-2020-10199에 영향을 받는 벤더와 제품은 무엇입니까?
주요 영향 벤더는 sonatype이며, 대상 컴포넌트는 nexus repository manager입니다. 상세 영향 범위: Sonatype Nexus Repository Manager 3.21.2 미만 버전 (3.21.1-01 및 이하 버전 전체)
Q3. 서버 재기동이나 정규 패치 전 즉시 적용할 수 있는 완화 조치(Workaround)는 무엇입니까?
[권장 조치] Nexus Repository Manager를 최신 안정 버전(3.21.2 이상)으로 즉시 업그레이드하십시오. 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.
CVE-2020-10199 사내 보안 패치 공지문 · CISO 경영진 보고서 초안 자동 생성
클릭 한 번으로 사내 이메일·노션·결재 문서에 바로 붙여넣을 수 있는 공식 보고서 양식을 생성합니다.
🔗 함께 점검해야 할 동일 벤더·스택 연관 취약점 (sonatype)
동일 카테고리 전체 보기 →GitLab CE/EE 미인증 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-97229)
[영향 대상] GitLab CE/EE 19.2(19.2.8 미만), 19.3(19.3.5 미만), 19.4(19.4.2 미만) 버전
GitLab CE/EE 미인증 임의 파일 읽기 취약점 보안 권고 (CVE-2026-85706)
[영향 대상] GitLab CE/EE 18.7 버전부터 19.3.1 버전 사이의 특정 릴리즈 사용자
Google Brotli 디코더 원격 코드 실행(RCE) 및 메모리 손상 취약점 보안 권고 (CVE-2026-111497)
[영향 대상] Google Brotli 라이브러리 버전 1.0.3 ~ 1.2.0을 사용하는 모든 웹 서버, 브라우저, Node.js 및 백엔드 애플리케이션
JFrog Artifactory 기본 설정 인증 우회 및 관리자 권한 상승 취약점 (CVE-2026-82329)
[영향 대상] 기본 구성으로 배포된 JFrog Artifactory 자가 관리형(Self-Managed) 인스턴스
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.