[단독방어] 분석 — 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 취약점과 연계될 수 있다.
- 추정: 악성 직렬화 객체가 파일 업로드·문서 처리 파이프라인에 삽입된 경우, 후속 코드 인젝션 혹은 권한 상승 단계와 결합될 위험이 존재한다.
🔎 탐지
-
로그 지표
- 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>)와 함께 실행
- IIS 로그:
-
SIEM 탐지 규칙 예시 (가공된 쿼리 형태)
sql1// Rule 1: Suspicious payload in SharePoint service endpoint2SELECT * FROM logs3WHERE sourcetype = "iis"4 AND cs-uri-stem LIKE "/_vti_bin/%"5 AND request_body MATCHES "(?i)<s:Binary>.*</s:Binary>"sql1// Rule 2: High‑entropy Base64 strings in POST bodies (length > 500)2SELECT * FROM logs3WHERE sourcetype = "sharepoint_uls"4 AND message LIKE "%Deserialization failed%"5OR request_body MATCHES "(?:[A-Za-z0-9+/]{4}){125,}" -
오탐 튜닝
- 정상적인 대용량 파일 업로드(예: .zip, .docx)에서 발생하는 긴 Base64 문자열은
Content-Type이application/octet-stream이 아닌 경우 제외 - 내부 서비스 계정(
DOMAIN\svc_sharepoint)가 생성한 프로세스는 허용 리스트에 추가
- 정상적인 대용량 파일 업로드(예: .zip, .docx)에서 발생하는 긴 Base64 문자열은
🛡️ 완화 방안
- 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