CVE 데이터베이스CVE-2019-1003029
English Advisory →
CVE-2019-10030299.9/CRITICALCISA KEV 등재

Jenkins Script Security 플러그인 샌드박스 우회 원격 코드 실행(RCE) 취약점 분석 및 대응 가이드 (CVE-2019-1003029)

⚡ 패치 명령어 바로가기
영향받는 벤더 / 생태계
jenkins
대상 컴포넌트 / 패키지
script-security-plugin
권고문 발행일
2019-03-08
CVSS v3.1
9.9
CRITICAL
30일 악용확률
74.4%
FIRST.org
CISA KEV
악용 확인됨

실무자 핵심 요약 (Executive Summary)

SECOPS ASSESSMENT
영향 대상

Jenkins Script Security 플러그인 1.53 및 이전 버전

파급 효과

Overall/Read 권한을 가진 공격자가 Groovy 샌드박스를 우회하여 Jenkins 마스터 JVM 내에서 임의의 코드를 실행할 수 있습니다

권장 조치

Script Security 플러그인을 최신 버전(1.54 이상)으로 즉시 업데이트하고, 불필요한 사용자 권한을 회수하십시오

영향받는 제품 및 버전 범위

Jenkins Script Security 플러그인 1.53 및 이하 버전 (Jenkins 마스터 서버에 설치된 환경)

권장 패치 및 임시 완화(Workaround) 가이드

패치 및 우회 명령어

1. 공식 보안 패치 및 버전 업그레이드 명령어

가장 확실한 해결책은 Script Security 플러그인을 1.54 이상 버전으로 업데이트하는 것입니다. Jenkins CLI를 사용하거나 관리자 페이지에서 즉시 업데이트를 수행하십시오.

bash
# Jenkins CLI를 이용한 Script Security 플러그인 업데이트 및 안전한 재시작
java -jar jenkins-cli.jar -s http://localhost:8080/ install-plugin script-security -deploy
java -jar jenkins-cli.jar -s http://localhost:8080/ safe-restart

2. 패치 전 임시 완화(Workaround) 및 접근 제어 설정

즉각적인 패치가 어려운 경우, 신뢰할 수 없는 사용자에게 부여된 'Overall/Read' 권한을 즉시 회수하고 익명 사용자의 접근을 전면 차단해야 합니다. 또한, 스크립트 승인(In-process Script Approval) 목록을 검토하여 비정상적인 스크립트가 등록되어 있는지 확인하십시오.

bash
# Jenkins 전면의 리버스 프록시(Nginx)에서 외부로부터의 Jenkins CLI 및 미인증 접근 차단 예시
server {
    listen 80;
    server_name jenkins.internal.local;
    
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    
    # 외부에서 접근하는 CLI 포트 및 특정 경로 차단
    location /cli {
        deny all;
        return 403;
    }
}

3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트

Jenkins 시스템 로그 및 빌드 실행 이력에서 샌드박스 우회 시도나 비정상적인 시스템 명령 실행 흔적이 있는지 점검하십시오.

bash
# Jenkins 빌드 로그에서 잠재적인 Groovy 샌드박스 우회 및 RCE 시도 키워드 검색
grep -riE '(Runtime\.getRuntime|ProcessBuilder|@Grab|System\.getProperty)' /var/lib/jenkins/jobs/

# 현재 설치된 Script Security 플러그인 버전 확인
xmlstarlet sel -t -v '//plugin[@artifactId="script-security"]/version' /var/lib/jenkins/plugins/script-security/META-INF/maven/org.jenkins-ci.plugins/script-security/pom.xml
실무자 패치 대응 자가 점검 체크리스트
0/4 (0%)
권장 아키텍처 방어 통제 (Recommended Security Control)
Snyk Open Source & Container Security
CISA KEV에 등록되어 실제 악용이 확인된 취약점이므로, Jenkins Script Security 플러그인을 즉시 1.54 이상 버전으로 업그레이드하십시오.

내 GitHub/GitLab 레포지토리에 이 취약한 패키지가 숨어 있는지 30초 만에 스캔하세요

간접 의존성(Transitive Dependency)에 포함된 취약점은 수동 확인이 불가능합니다. Git 연동 한 번으로 취약 버전 탐지부터 호환성을 유지하는 최소 버전 업그레이드 PR까지 자동 생성하세요.

무료 플랜 지원 · GitHub/GitLab 1클릭 연동
CI/CD 파이프라인에 자동 보안 스캐닝(SAST/SCA) 구축하는 실전 강의
커리큘럼 확인하기

취약점 발생 원리 및 공격 메커니즘

1. 취약점 개요 및 발생 원인 (Root Cause)

본 취약점은 Jenkins Script Security 플러그인의 Groovy 샌드박스 검증 로직에서 발생합니다. GroovySandbox.java 및 SecureGroovyScript.java 파일 내에서 Groovy 스크립트의 AST(Abstract Syntax Tree) 변환 및 컴파일러 커스텀 설정을 처리할 때, 특정 생성자 호출이나 메서드 체이닝에 대한 검증이 불충분하게 이루어집니다. 이로 인해 공격자는 샌드박스 제한을 우회하여 허용되지 않은 Java/Groovy API에 직접 접근할 수 있는 악성 스크립트를 주입할 수 있습니다.

2. 공격 메커니즘 및 익스플로잇 시나리오

공격자는 Jenkins에 대한 최소한의 읽기 권한(Overall/Read)을 확보한 상태에서, 파이프라인 스크립트 작성 기능이나 Groovy 스크립트 입력 폼을 악용합니다. 공격자는 샌드박스 검사기(Sandbox Transformer)가 탐지하지 못하는 특수하게 조작된 Groovy 문법(예: 특정 어노테이션, 메타프로그래밍 기법 또는 생성자 우회)을 사용하여 스크립트를 구성합니다. 이 스크립트가 Jenkins 마스터 노드에서 컴파일되고 실행되는 순간, 샌드박스 필터링을 우회하여 java.lang.Runtime.getRuntime().exec()와 같은 시스템 명령 실행 API를 호출하게 됩니다.

3. 비즈니스 및 인프라 파급 영향

본 취약점은 CVSS 9.9의 치명적인(Critical) 등급으로 평가되었으며, 실제 공격에 적극적으로 악용되는 CISA KEV 등재 취약점입니다. 공격자가 Jenkins 마스터 서버의 제어권을 완전히 획득할 경우, CI/CD 파이프라인에 보관된 소스 코드, AWS/Kubernetes 자격 증명(Credentials), API 토큰 등 기업의 핵심 자산이 유출될 수 있습니다. 더 나아가 빌드 아티팩트에 악성코드를 주입하는 공급망 공격(Supply Chain Attack)으로 전이될 수 있는 심각한 위험을 내포하고 있습니다.

공식 보안 권고문 및 참조 링크

자주 묻는 실무 질문 (FAQ — CVE-2019-1003029)

FAQ

Q1. CVE-2019-1003029 취약점의 위험도와 실제 악용 가능성은 어느 정도입니까?

CVE-2019-1003029의 기본 점수는 CVSS 9.9 (CRITICAL)이며, 향후 30일 내 실제 악용 확률을 나타내는 EPSS 점수는 74.4%입니다. 현재 미국 CISA KEV(실제 악용이 확인된 취약점 카탈로그)에 등재되어 있으므로 최우선 긴급 패치가 필요합니다.

Q2. CVE-2019-1003029에 영향을 받는 벤더와 제품은 무엇입니까?

주요 영향 벤더는 jenkins이며, 대상 컴포넌트는 script-security-plugin입니다. 상세 영향 범위: Jenkins Script Security 플러그인 1.53 및 이하 버전 (Jenkins 마스터 서버에 설치된 환경)

Q3. 서버 재기동이나 정규 패치 전 즉시 적용할 수 있는 완화 조치(Workaround)는 무엇입니까?

[권장 조치] Script Security 플러그인을 최신 버전(1.54 이상)으로 즉시 업데이트하고, 불필요한 사용자 권한을 회수하십시오 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.

실무자 보고서 워크벤치 연동

CVE-2019-1003029 사내 보안 패치 공지문 · CISO 경영진 보고서 초안 자동 생성

클릭 한 번으로 사내 이메일·노션·결재 문서에 바로 붙여넣을 수 있는 공식 보고서 양식을 생성합니다.

보고서 초안 생성하기 →

🔗 함께 점검해야 할 동일 벤더·스택 연관 취약점 (jenkins)

동일 카테고리 전체 보기 →
SecOps Advisory Dispatch & RSS Feed

일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독

보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.

Slack / Teams / RSS 리더 연동:
패치 명령EN
CVE-2019-1003029 Jenkins Script Security 플러그인 샌드박스 우회 원격 코드 실행(RCE) 취약점 분석 및 대응 가이드 (CVE-2019-1003029) (CVSS 9.9) - 패치 및 보안 권고 | CVE Pulse