Kestrel
CVE-2026-20963DGX_F· 2026년 8월 3일 AM 02:21

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

Critical remote code execution via unsafe deserialization in Microsoft SharePoint can be mitigated immediately by blocking the vulnerable endpoint and applying layered detection and mitigation controls.

📋 요약

  • 심각도 critical · CVSS 9.8 · EPSS 0.29459 · 악용난이도 easy · KEV

🔍 공격 기법

Microsoft SharePoint 서버에서 외부 요청이 신뢰되지 않은 직렬화 데이터를 포함하면, 해당 데이터가 역직렬화 과정에서 악의적인 객체로 변환되어 임의 코드를 실행한다. 공격자는 네트워크를 통해 직접 HTTP POST/PUT 요청을 전송하고, 특정 서비스(예: /_vti_bin/* 혹은 Client.svc)에 직렬화된 페이로드를 삽입해 코드 실행을 유발한다.

악용 가능성: 이 취약점은 네트워크를 통해 바로 접근 가능한 서비스(AV:N)에서 발생하므로 공격자는 내부·외부 어디서든 요청을 전송할 수 있습니다. 공격 복잡도가 낮고(L), 사전 권한이 전혀 필요하지 않으며(PR:N) 사용자와의 상호작용도 요구되지 않으므로(UI:N) 원격에서 단일 HTTP/HTTPS 호출만으로 악성 객체를 전달하면 됩니다. 실제로 EPSS = 0.29459(≈29 %)라는 수치는 향후 12개월 내에 거의 30 % 확률로 실제 공격이 발생할 가능성을 의미하며, KEV 리스트에 등재된 점은 이미 실무에서 악용 사례가 보고되었음을 증명합니다. 주요 공격 표면은 SharePoint의 웹 애플리케이션 엔드포인트(예: /_vti_bin/… 혹은 SOAP 서비스)이며, 이곳이 직렬화된 데이터를 받아 처리하는 파라미터를 공개하고 있습니다. 따라서 공격자는 해당 URL에 조작된 직렬화 객체를 포함한 POST 요청을 전송함으로써 서버 측에서 임의 코드를 실행시킬 수 있습니다. 이러한 조건은 별도의 내부 인증 절차 없이도 원격 코드 실행(RCE)이 가능한 “easy” 등급에 부합합니다.

💥 영향 분석

  • 기밀성(C): 공격자가 시스템 권한으로 파일·데이터베이스 전체에 접근 가능
  • 무결성(I): 임의 스크립트·명령어 실행으로 설정·콘텐츠 변조 가능
  • 가용성(A): 서비스 중단·프로세스 무한 루프 등으로 전반적 다운 타임 초래

🔗 관련 취약점·체이닝

  • 추정: 동일한 Deserialization (CWE‑502) 패턴을 이용한 이전 SharePoint 취약점과 연계될 수 있다.
  • 추정: 악성 직렬화 객체가 파일 업로드·문서 처리 파이프라인에 삽입된 경우, 후속 코드 인젝션 혹은 권한 상승 단계와 결합될 위험이 존재한다.

🔎 탐지

  1. 로그 지표

    • IIS 로그: cs-uri-stem/ _vti_bin/ 또는 Client.svc 포함, sc-status=500·sc-substatus=0 빈도가 급증
    • ULS (SharePoint Unified Logging Service): 이벤트 ID 3005 “Deserialization failed” 혹은 “Object reference not set” 메시지
    • Windows Security 로그: Process Creation (4688)에서 svchost.exe –k iisadmin 가 비정상적인 인수(-p <base64>)와 함께 실행
  2. SIEM 탐지 규칙 예시 (가공된 쿼리 형태)

    sql
    1// Rule 1: Suspicious payload in SharePoint service endpoint
    2SELECT * FROM logs
    3WHERE sourcetype = "iis"
    4 AND cs-uri-stem LIKE "/_vti_bin/%"
    5 AND request_body MATCHES "(?i)<s:Binary>.*</s:Binary>"
    sql
    1// Rule 2: High‑entropy Base64 strings in POST bodies (length > 500)
    2SELECT * FROM logs
    3WHERE sourcetype = "sharepoint_uls"
    4 AND message LIKE "%Deserialization failed%"
    5OR request_body MATCHES "(?:[A-Za-z0-9+/]{4}){125,}"
  3. 오탐 튜닝

    • 정상적인 대용량 파일 업로드(예: .zip, .docx)에서 발생하는 긴 Base64 문자열은 Content-Typeapplication/octet-stream이 아닌 경우 제외
    • 내부 서비스 계정(DOMAIN\svc_sharepoint)가 생성한 프로세스는 허용 리스트에 추가

🛡️ 완화 방안

  • IIS Request Filtering: requestLimits.maxAllowedContentLength 를 제한하고, denyUrlSequences/Client.svc 와 같은 직렬화 서비스 경로를 추가
  • SharePoint URLScan/Request Validation: 의심스러운 직렬화 마커(\<s:Binary\>)가 포함된 요청 본문을 차단하도록 규칙 정의
  • 권한 최소화: 익명 접근을 비활성화하고, 외부 IP 대역에 대해 Read 권한만 허용하도록 웹 애플리케이션 정책 수정
    • 구현 난이도: ★★☆ (IIS/SharePoint 설정 변경, 서비스 재시작 필요)
    • 운영 영향: 일부 내부 사용자는 인증 절차가 추가되지만 서비스 가용성은 유지

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…