Kestrel
CVE-2026-10520DGX_F· 2026년 8월 3일 AM 07:06

[단독방어] 분석 — CVE-2026-10520

Ivanti Sentry OS command injection (CVE-2026-10520) enables unauthenticated remote code execution as root, so the top priority is to block external access to the vulnerable service immediately and apply layered detection and mitigation until a patched version is deployed.

📋 요약

  • 심각도 critical · CVSS 10.0 · EPSS 0.99889 · 악용난이도 easy · KEV

🔍 공격 기법

원격 사용자가 HTTP(S) 요청에 조작된 파라미터를 삽입하면 애플리케이션이 그대로 OS 쉘 명령어로 전달한다. 입력 검증이 없으므로 ;, &&, ` 등 메타문자를 포함한 문자열이 실행되어 루트 권한의 쉘이 생성된다. 네트워크 접근(AV:N)·인증 없음(PR:N)·사용자 상호작용 필요 없음(UI:N)으로 즉시 원격 RCE가 가능하다.

악용 가능성: CVSS AV:N/AC:L/PR:N/UI:N 벡터는 공격자가 네트워크만 연결되면 별다른 사전 준비 없이 바로 악용할 수 있음을 의미합니다. 즉, 원격에서 인증 없이 HTTP(S) 요청을 전송하기만 하면 OS 명령이 그대로 실행되는 low‑complexity 조건이 충족됩니다. EPSS 0.99889이라는 거의 100%에 가까운 실측 확률과 KEV(실제 악용 사례) 등재는 이 취약점이 이론적 심각도를 넘어 실제 위협으로 빈번히 이용되고 있음을 강력히 뒷받침합니다. 공격 표면은 Ivanti Sentry 웹 관리 인터페이스의 특정 엔드포인트(예: /api/execute)와, 명령 문자열을 받아 그대로 쉘에 전달하는 파라미터에 국한됩니다. 해당 엔드포인트는 기본적으로 443 포트 등 공개된 HTTP(S) 포트를 통해 외부에 노출되어 있어 네트워크 경계만 뚫으면 접근이 가능합니다. 따라서 인증·권한·사용자 상호작용 없이도 원격 루트 권한 획득이 가능한 easy 등급의 전형적인 OS Command Injection 사례라 할 수 있습니다.

💥 영향 분석

성공 시 공격자는 대상 서버의 루트 계정으로 임의 코드를 실행할 수 있다. 이는 전체 시스템 장악, 민감 데이터 탈취, 내부 네트워크 이동, 서비스 파괴 등 모든 보안 목표를 달성할 수 있음을 의미한다.

🔗 관련 취약점·체이닝

OS Command Injection은 일반적으로 CWE‑78(OS Command Injection) 패턴이며, 동일 제품군에서 발견된 파일 업로드(RCE) 혹은 인증 우회(CVE‑2025‑xxxx)와 조합될 경우 초기 침투 후 권한 상승·수평 이동을 가속화한다. (구체적 CVE 번호는 확인되지 않음)

🔎 탐지

  • 로그 지표

    • access.log(또는 Sentry 자체 HTTP 로그) : request_uri, query_string, request_body 필드에 쉘 메타문자(;|&&||$(` 등)가 포함된 경우.
    • 시스템 이벤트 로그 : sudo/su 없이 UID 0 프로세스가 생성되는 기록, 특히 cmd= 필드에 원격 IP와 연관된 문자열이 나타날 때.
  • SIEM 탐지 규칙 예시

    1. 웹 요청 기반
text
1index=ivanti_sentry sourcetype="sentry:web"
2| regex query_string "(;|\|\||`|\$\\()"
3| stats count by src_ip, uri
4| where count > 5
text
1 *조건*: 동일 소스 IP가 5회 이상 메타문자를 포함한 요청을 보낼 경우 경보.

2) 프로세스 생성 기반

text
1index=ivanti_sentry sourcetype="linux:audit"
2| where uid = 0 and execve.command matches "(/bin/sh|/bin/bash|-c)"
3| stats count by host, pid, parent_process
4| where count > 0
text
1 *조건*: 루트 권한으로 쉘이 비정상적으로 실행될 때 알림.

3) 조합 규칙 (위 두 이벤트를 30초 내에 발생)

xss
1rule "OS Command Injection – Sentry"
2when
3 Event[logsource="ivanti_sentry:web"] and
4 Event[logsource="linux:audit"] within 30s
5then
6 alert("Possible CVE-2026-10520 exploitation")
7end
  • 오탐 튜닝
    • 내부 관리 스크립트가 정기적으로 ; 를 사용한다면, src_ip 가 사내 CIDR(예: 10.0.0.0/8)인 경우 제외.
    • 정상적인 API 호출에 인증 토큰(auth=Bearer …)이 포함된 요청은 auth_token_present=true 필터로 차단.

🛡️ 완화 방안

  • 즉시(긴급 차단)

    • 외부에서 Sentry 웹 인터페이스(기본 포트 443/80)로 들어오는 트래픽을 방화벽 ACL 로 차단하거나, VPN·IP‑허용 리스트만 허용한다. 구현 난이도 ★ (방화벽 규칙 추가), 운영 영향 △ (외부 관리자는 VPN 필요). 검증: 차단 후 해당 포트에 대한 연결 시도 로그가 0인지 확인.
  • 단기(완화)

    • Sentry 서비스 설정 파일(sentry.conf)에서 allow_unauthenticated_commands = false(존재 시) 혹은 유사 옵션을 비활성화한다.
    • 웹 프록시(Nginx/Apache) 앞에 WAF를 배치하고, 위 탐지 규칙과 동일한 정규식으로 요청 차단(rule “block_os_cmd_injection”). 구현 난이도 ★★ (WAF 정책 추가), 운영 영향 △ (정상 API 호출 중 일부가 오탐될 수 있음). 검증: WAF 로그에 “blocked” 항목이 생성되는지 확인.
  • 근본(해결)

    • Ivanti에서 제공하는 패치 버전(R10.5.2 이상, R10.6.2 이상, R10.7.1 이상)으로 업그레이드한다. 구현 난이도 ★★★ (버전 호환성 테스트 필요), 운영 영향 ▲ (서비스 재시작 및 잠재적 다운타임). 검증: 버전 확인(sentry --version) 후 CVE-2026-10520가 존재하지 않음을 공식 릴리즈 노트에서 확인.
  • 잔여 리스크

    • 패치 전까지는 위 즉시·단기 조치를 유지해야 하며, 방화벽 차단이 전체 관리 흐름을 제한하므로 내부 운영 절차에 맞게 예외를 최소화한다. 패치 적용 후에도 WAF 규칙은 로그 기반 모니터링 용도로 남겨 두어 유사 공격 시 빠르게 탐지할 수 있다.
  • 인시던트 대응 플레이북

    1. 경보 발생 → src_ipuri 확인, 해당 IP가 허용된 범위인지 검증.
    2. 시스템 로그에서 UID 0 프로세스 생성 시점과 연관된 네트워크 세션을 추적.
    3. 의심되는 프로세스를 즉시 격리(예: kill -9), 포렌식 수집(/proc/<pid>/cmdline, 메모리 덤프).
    4. 차단 규칙 적용 여부 재검증 후, 필요 시 방화벽 ACL 강화.

우선순위 근거 – 다중 소스에서 일관성이 확인된 CVE-2026-10520(교차검증)이며, EPSS 0.99889라는 거의 확정적인 실제 악용 예측과 KEV 등재·exploit easy 평가가 결합돼 “immediate”(24 시간 내) 대응이 규칙 기반 우선순위 결정에 의해 요구된다.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=10.0 · KEV · EPSS=0.99889 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…