English Advisory →
CVE-2020-119788.8/HIGHCISA KEV 등재CWE-78CWE-78

Apache Airflow 예제 DAG 원격 코드 실행(RCE) 취약점 분석 및 대응 가이드 (CVE-2020-11978)

⚡ 패치 명령어 바로가기
영향받는 벤더 / 생태계
apache
대상 컴포넌트 / 패키지
airflow
권고문 발행일
2020-07-17
CVSS v3.1
8.8
HIGH
30일 악용확률
99.2%
FIRST.org
CISA KEV
악용 확인됨

실무자 핵심 요약 (Executive Summary)

SECOPS ASSESSMENT
영향 대상

Apache Airflow 1.10.10 및 이하 버전 중 예제 DAG(load_examples=True)가 활성화된 환경

파급 효과

인증된 공격자가 예제 DAG의 매개변수 입력값을 조작하여 Airflow Worker 또는 Scheduler 권한으로 임의의 OS 명령어를 실행할 수 있습니다

권장 조치

Apache Airflow를 최신 버전(1.10.11 이상)으로 업그레이드하거나, airflow.cfg 설정에서 load_examples 옵션을 False로 변경하십시오

영향받는 제품 및 버전 범위

Apache Airflow 1.10.10 및 이하 버전 (load_examples 설정이 True로 활성화된 경우에 한함)

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

패치 및 우회 명령어

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

가장 확실한 해결책은 Apache Airflow를 취약점이 해결된 최신 안정 버전으로 업그레이드하는 것입니다. 아래 명령어를 사용하여 패키지를 업데이트하십시오.

bash
# pip를 통한 Apache Airflow 업그레이드 (버전 1.10.11 이상 또는 최신 2.x 권장)
pip install --upgrade 'apache-airflow>=1.10.11'

# 업그레이드 후 Airflow 웹서버 및 스케줄러 재시작
systemctl restart airflow-webserver
systemctl restart airflow-scheduler

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

즉각적인 업그레이드가 어려운 경우, Airflow 설정 파일(airflow.cfg)에서 예제 DAG 로드를 비활성화하여 취약점을 즉시 완화할 수 있습니다.

bash
# 1. airflow.cfg 파일에서 load_examples 설정을 False로 변경
sed -i 's/load_examples = True/load_examples = False/g' /root/airflow/airflow.cfg

# 2. 메타데이터 데이터베이스에서 기존 로드된 예제 DAG 제거 (Airflow CLI 사용)
airflow resetdb -y
# 주의: resetdb는 기존 메타데이터를 초기화하므로, 운영 환경에서는 아래와 같이 개별 DAG를 Unpause/삭제 처리하십시오.

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

현재 구동 중인 Airflow의 설정 상태를 점검하고 취약한 예제 DAG가 활성화되어 있는지 확인하는 스크립트입니다.

bash
# Airflow 설정 파일에서 load_examples 활성화 여부 검사
if grep -q 'load_examples = True' /root/airflow/airflow.cfg; then
  echo '[WARNING] 취약한 예제 DAG가 활성화되어 있습니다. 즉시 비활성화하십시오.';
else
  echo '[OK] 예제 DAG가 비활성화되어 안전합니다.';
fi
실무자 패치 대응 자가 점검 체크리스트
0/4 (0%)
권장 아키텍처 방어 통제 (Recommended Security Control)
Snyk Open Source & Container Security
운영 중인 Apache Airflow의 airflow.cfg 내 load_examples 설정을 즉시 False로 변경하고, 최신 보안 패치 버전으로 업그레이드하십시오.

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

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

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

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

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

본 취약점(CVE-2020-11978)은 Apache Airflow 1.10.10 및 이전 버전에 기본 탑재된 예제 DAG(Example DAG) 중 하나에서 발생하는 OS 명령 주입(Command Injection, CWE-78) 취약점입니다. Airflow 설치 시 기본적으로 활성화되는 예제 DAG 내에서 외부 입력값을 적절히 검증하거나 이스케이프 처리하지 않고 시스템 셸 명령의 인자로 직접 전달하면서 발생합니다.

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

공격자는 Airflow 웹 UI 또는 API에 접근할 수 있는 인증된 권한을 획득한 후, 취약한 예제 DAG(예: example_trigger_target_dag)를 트리거합니다. 이때 DAG 실행 구성 매개변수(Conf JSON)에 악의적인 셸 메타문자(예: ;, &&, |)가 포함된 페이로드를 주입합니다. Airflow 스케줄러 또는 워커가 해당 DAG를 실행할 때, 주입된 페이로드가 검증 없이 시스템 명령어로 해석되어 실행됩니다. 이 취약점은 CISA KEV(Known Exploited Vulnerabilities)에 등재되어 있으며, EPSS 점수가 0.99를 초과하여 실제 공격에 매우 빈번하게 악용되고 있습니다.

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

성공적으로 익스플로잇될 경우, 공격자는 Airflow 프로세스를 실행 중인 OS 사용자(일반적으로 airflow 유저)의 권한으로 임의의 명령을 실행할 수 있습니다. 이는 데이터 파이프라인 내의 민감한 자격 증명(데이터베이스 패스워드, 클라우드 API 키 등) 탈취로 이어질 수 있으며, 내부 네트워크 침투 및 데이터베이스 파괴 등 심각한 비즈니스 중단 사태를 초래할 수 있습니다.

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

NIST NVD 공식 영문 원문 (Original Record)

An issue was found in Apache Airflow versions 1.10.10 and below. A remote code/command injection vulnerability was discovered in one of the example DAGs shipped with Airflow which would allow any authenticated user to run arbitrary commands as the user running airflow worker/scheduler (depending on the executor in use). If you already have examples disabled by setting load_examples=False in the config then you are not vulnerable.

자주 묻는 실무 질문 (FAQ — CVE-2020-11978)

FAQ

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

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

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

주요 영향 벤더는 apache이며, 대상 컴포넌트는 airflow입니다. 상세 영향 범위: Apache Airflow 1.10.10 및 이하 버전 (load_examples 설정이 True로 활성화된 경우에 한함)

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

[권장 조치] Apache Airflow를 최신 버전(1.10.11 이상)으로 업그레이드하거나, airflow.cfg 설정에서 load_examples 옵션을 False로 변경하십시오 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.

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

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

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

보고서 초안 생성하기 →

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

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

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

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

Slack / Teams / RSS 리더 연동:
패치 명령EN
CVE-2020-11978 Apache Airflow 예제 DAG 원격 코드 실행(RCE) 취약점 분석 및 대응 가이드 (CVE-2020-11978) (CVSS 8.8) - 패치 및 보안 권고 | CVE Pulse