English Advisory →
CVE-2020-168469.8/CRITICALCISA KEV 등재CWE-78CWE-78

SaltStack Salt API SSH 클라이언트 쉘 주입 원격 코드 실행(RCE) 취약점 (CVE-2020-16846)

⚡ 패치 명령어 바로가기
영향받는 벤더 / 생태계
saltstack
대상 컴포넌트 / 패키지
salt
권고문 발행일
2020-11-06
CVSS v3.1
9.8
CRITICAL
30일 악용확률
99.6%
FIRST.org
CISA KEV
악용 확인됨

실무자 핵심 요약 (Executive Summary)

SECOPS ASSESSMENT
영향 대상

SaltStack Salt 3002 이하 버전 중 Salt API 및 SSH 클라이언트가 활성화된 환경

파급 효과

인증되지 않은 원격 공격자가 조작된 HTTP 요청을 전송하여 대상 서버에서 임의의 시스템 명령을 실행할 수 있습니다

권장 조치

SaltStack 공식 보안 패치를 적용하거나, Salt API 구성에서 SSH 클라이언트 사용을 비활성화하십시오

영향받는 제품 및 버전 범위

SaltStack Salt 3002 및 이전 버전 (Salt API 및 SSH 클라이언트 활성화 환경)

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

패치 및 우회 명령어

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

SaltStack 공식 패치가 적용된 최신 안정 버전으로 업그레이드를 수행하십시오. OS 패키지 관리자를 사용하는 경우 아래 명령어를 참고하십시오.

bash
# Debian/Ubuntu 계열 시스템 업데이트
sudo apt-get update
sudo apt-get --only-upgrade install salt-master salt-common salt-api

# RedHat/CentOS 계열 시스템 업데이트
sudo yum clean all
sudo yum update salt-master salt-common salt-api

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

즉각적인 패치가 어려운 경우, Salt API 설정 파일에서 SSH 클라이언트 연동을 비활성화하거나 외부 접근을 차단해야 합니다.

bash
# /etc/salt/master 파일에서 salt-api 및 ssh 관련 설정 비활성화 또는 제한
# API 서비스 중지
sudo systemctl stop salt-api

# 방화벽(iptables)을 통한 Salt API 포트(기본 8000) 외부 접근 차단
sudo iptables -A INPUT -p tcp --dport 8000 -s 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8000 -j DROP

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

Salt API 로그에서 비정상적인 SSH 호출 시도 및 쉘 메타문자가 포함된 요청을 탐지하는 스크립트 예시입니다.

bash
# Salt API 로그에서 의심스러운 쉘 메타문자 및 ssh 파라미터 검색
grep -Ei 'ssh_control|;|\||\&|\`|\$' /var/log/salt/api

# 현재 설치된 Salt 버전 확인
salt --version
실무자 패치 대응 자가 점검 체크리스트
0/4 (0%)
권장 아키텍처 방어 통제 (Recommended Security Control)
Cloudflare Enterprise & Pro WAF
실제 악용 사례가 보고된 취약점이므로, 노출된 Salt API 포트를 즉시 차단하고 최신 보안 패치 버전으로 업그레이드하십시오.

코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요

서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.

평균 설정 시간 3분 · Zero-Day 자동 룰 업데이트
이 웹 취약점(WAF 우회 & RCE)을 안전한 실습 랩에서 직접 재현해 보세요
실습 랩 & 보안 강의 보러가기

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

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

본 취약점(CVE-2020-16846)은 SaltStack Salt의 REST API 모듈(salt-api)에서 발생하는 치명적인 OS 명령 주입(Shell Injection) 취약점입니다. Salt API를 통해 SSH 클라이언트(Salt-SSH) 기능을 호출하는 과정에서, 사용자로부터 전달받은 매개변수에 대한 적절한 검증 및 이스케이프 처리가 누락되어 발생합니다. 이로 인해 공격자는 쉘 메타문자를 삽입하여 시스템 명령을 실행할 수 있게 됩니다.

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

공격자는 외부에서 접근 가능한 Salt API 엔드포인트(예: /run 또는 /login)로 특수하게 조작된 JSON 또는 폼 데이터를 전송합니다. API 내부적으로 SSH 명령을 생성하고 실행하는 루틴에서 입력값이 쉘 환경으로 그대로 전달되므로, 공격자는 세미콜론(;), 앰퍼샌드(&), 파이프(|) 등의 쉘 메타문자를 사용하여 독자적인 명령어를 주입합니다. 이 과정에서 별도의 사용자 인증(Authentication)을 거치지 않고도 원격 코드 실행(RCE)이 가능하여 매우 위협적입니다.

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

본 취약점은 CVSS 9.8의 치명적(Critical) 등급으로 평가되었으며, CISA KEV(알려진 악용된 취약점 카탈로그)에 등재되어 실제 공격에 적극적으로 악용되고 있음이 확인되었습니다. 공격자가 이 취약점을 악용할 경우, 인프라 관리 권한을 완전히 탈취하여 내부 네트워크로의 횡적 이동(Lateral Movement), 데이터 유출, 랜섬웨어 유포, 또는 암호화폐 채굴기 설치 등의 심각한 비즈니스 중단 사태를 초래할 수 있습니다.

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

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

FAQ

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

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

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

주요 영향 벤더는 saltstack이며, 대상 컴포넌트는 salt입니다. 상세 영향 범위: SaltStack Salt 3002 및 이전 버전 (Salt API 및 SSH 클라이언트 활성화 환경)

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

[권장 조치] SaltStack 공식 보안 패치를 적용하거나, Salt API 구성에서 SSH 클라이언트 사용을 비활성화하십시오 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.

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

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

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

보고서 초안 생성하기 →

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

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

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

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

Slack / Teams / RSS 리더 연동:
패치 명령EN
CVE-2020-16846 SaltStack Salt API SSH 클라이언트 쉘 주입 원격 코드 실행(RCE) 취약점 (CVE-2020-16846) (CVSS 9.8) - 패치 및 보안 권고 | CVE Pulse