SaltStack Salt API SSH 클라이언트 쉘 주입 원격 코드 실행(RCE) 취약점 (CVE-2020-16846)
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTSaltStack Salt 3002 이하 버전 중 Salt API 및 SSH 클라이언트가 활성화된 환경
인증되지 않은 원격 공격자가 조작된 HTTP 요청을 전송하여 대상 서버에서 임의의 시스템 명령을 실행할 수 있습니다
SaltStack 공식 보안 패치를 적용하거나, Salt API 구성에서 SSH 클라이언트 사용을 비활성화하십시오
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
패치 및 우회 명령어1. 공식 보안 패치 및 버전 업그레이드 명령어
SaltStack 공식 패치가 적용된 최신 안정 버전으로 업그레이드를 수행하십시오. OS 패키지 관리자를 사용하는 경우 아래 명령어를 참고하십시오.
# 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-api2. 패치 전 임시 완화(Workaround) 및 접근 제어 설정
즉각적인 패치가 어려운 경우, Salt API 설정 파일에서 SSH 클라이언트 연동을 비활성화하거나 외부 접근을 차단해야 합니다.
# /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 DROP3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트
Salt API 로그에서 비정상적인 SSH 호출 시도 및 쉘 메타문자가 포함된 요청을 탐지하는 스크립트 예시입니다.
# Salt API 로그에서 의심스러운 쉘 메타문자 및 ssh 파라미터 검색
grep -Ei 'ssh_control|;|\||\&|\`|\$' /var/log/salt/api
# 현재 설치된 Salt 버전 확인
salt --version코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요
서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.
취약점 발생 원리 및 공격 메커니즘
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), 데이터 유출, 랜섬웨어 유포, 또는 암호화폐 채굴기 설치 등의 심각한 비즈니스 중단 사태를 초래할 수 있습니다.
공식 보안 권고문 및 참조 링크
An issue was discovered in SaltStack Salt through 3002. Sending crafted web requests to the Salt API, with the SSH client enabled, can result in shell injection.
자주 묻는 실무 질문 (FAQ — CVE-2020-16846)
FAQQ1. 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)
동일 카테고리 전체 보기 →LiteLLM 프록시 서버 MCP 테스트 엔드포인트 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-42271)
[영향 대상] LiteLLM 버전 1.74.2 이상 1.83.7 미만 버전을 사용하는 AI 게이트웨이 및 프록시 서버 환경
Ahsay AhsayCBS Replication Receiver 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-105134)
[영향 대상] AhsayCBS 9.15.2.69 및 10.3.4.44 이하 버전의 Replication Receiver 구성 요소
Nextcloud Collabora Online Built-in CODE Server 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-110447)
[영향 대상] Nextcloud에 설치된 Collabora Online Built-in CODE Server (richdocumentscode) 26.4.303 미만 버전
Zimbra Collaboration Suite (ZCS) 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-73570, CISA KEV 등재)
[영향 대상] zimbra-snmp 패키지가 설치되어 있고 SNMP 알림 기능이 활성화된 Zimbra Collaboration (ZCS) 10.1.20 미만 버전.
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.