[방어] 분석 — CVE-2026-55126
A stored XSS in SharePoint (CVE-2026-55126) enables authorized attackers to inject scripts that run on victim browsers, and the highest‑priority immediate mitigation is to block script execution for untrusted inputs at the web‑application firewall level.
📋 요약
- 심각도 high · CVSS 7.3 · EPSS 0.00532 · 악용난이도 hard
🔍 공격 기법
공격자는 인증된 사용자 계정으로 악의적인 스크립트를 포함한 입력값을 SharePoint 페이지에 삽입합니다. 해당 페이지가 네트워크를 통해 다른 사용자의 브라우저에 렌더링될 때, 스크립트가 실행되어 세션 쿠키 탈취·피싱 등 사칭 행동이 발생합니다.
악용 가능성: AV:N·AC:L·PR:L·UI:R 벡터는 공격자가 네트워크를 통해 직접 요청을 전송할 수 있지만, 성공하려면 낮은 권한(일반 사용자)으로 인증된 상태여야 하며, 최종 사용자가 조작된 페이지를 열어 보게 되는 User‑Interaction(R)이 필수임을 의미합니다. 따라서 공격자는 SharePoint 사이트에 접근 가능한 내부 혹은 VPN 네트워크가 필요하고, 피싱이나 악성 링크 등으로 사용자에게 해당 URL을 클릭하도록 유도해야 합니다. EPSS=0.00532(≈0.5 %)는 현재까지 실제 악용 사례가 극히 드물다는 실측값이며, KEV에 등재되지 않은 점은 공개된 자동화 익스플로잇이 존재하지 않음을 시사합니다. 이러한 지표들은 이론적 심각도(CVSS)와 달리 현장에서 공격이 발생할 확률이 낮지만, 조건이 충족될 경우 손쉽게 스푸핑·세션 탈취가 가능함을 보여줍니다. 주요 공격 표면은 SharePoint‑Web Application에서 사용자 입력을 그대로 HTML에 삽입하는 페이지(예: /Lists/, /SitePages/.aspx)와 URL 파라미터, 폼 필드 등이며, 이들 엔드포인트가 HTTP(S)로 외부에 노출될 경우 취약점이 활용됩니다. 결국 난이도는 “네트워크 접근 + 사용자 클릭”이라는 두 단계 조건 때문에 hard 등급으로 평가되지만, 실제 악용 가능성은 EPSS와 KEV 기록을 통해 낮게 판단됩니다.
💥 영향 분석
성공적인 XSS 공격 시 다음과 같은 위험이 존재합니다.
- 사용자 세션 하이재킹(C) – 인증된 사용자의 쿠키가 탈취됩니다.
- 피싱 페이지 삽입(I) – 가짜 로그인 폼 등으로 사용자 정보를 수집할 수 있습니다.
- 악성 스크립트 실행을 통한 추가 내부 시스템 탐색 가능성이 존재하지만, 직접적인 원격 코드 실행은 포함되지 않습니다(A = N).
🔗 관련 취약점·체이닝
추정: 동일한 CWE‑79(전달형 XSS) 패턴을 이용한 다른 SharePoint 취약점이나 웹 어플리케이션 프레임워크의 입력 검증 미비와 연계될 수 있습니다. 공격자는 탈취된 세션을 활용해 권한 상승(CWE‑285) 또는 CSRF(CWE‑352) 등 추가적인 공격 단계로 전이할 가능성이 존재합니다.
🔎 탐지
-
로그 지표
SharePoint ULS로그:RequestUrl,UserAgent,Message필드에<script>혹은javascript:와 같은 문자열이 포함된 경우.- 웹 서버(
IIS) 요청 로그:cs-uri-stem,cs-uri-query에 HTML/JS 인코딩 패턴(예:%3Cscript%3E,<script) 존재 여부.
-
SIEM 탐지 규칙 예시
- 규칙 A – ULS 스크립트 삽입 감지
1source = "SharePointULS" 2| where Message matches regex "(<script|javascript:|onerror=)" 3| summarize count() by bin(TimeGenerated,5m), RequestUrl, UserId 4| where count_ > 3- 규칙 B – IIS 쿼리 파라미터 XSS 패턴
1source = "IIS" 2| where cs_uri_query matches regex "(%3C|<).*script" 3| summarize cnt=count() by bin(TimeGenerated,1m), cs_username, cs_uri_stem 4| where cnt >= 2- 규칙 C – Referrer 기반 스크립트 전파 탐지
1source = "IIS" 2| where cs_referer matches regex "(<script|javascript:)" 3| project TimeGenerated, cs_username, cs_uri_stem, cs_referer- 오탐 튜닝
- 내부 테스트 페이지에서 정상적인 HTML 에디터가
<script>태그를 포함할 경우 오탐이 발생하므로,UserAgent가 “SharePoint Designer” 혹은 특정 관리 도구인 경우 제외 조건을 추가합니다. - 정규식에 인코딩된 문자열(
%3C)만 탐지하도록 제한하고, 일반적인 URL 파라미터(예: 검색어)와 구분하기 위해 최소 길이(>20자) 및 비정상적 문자 조합(다중%연속)을 임계값으로 설정합니다.
- 내부 테스트 페이지에서 정상적인 HTML 에디터가
🛡️ 완화 방안
-
즉시(긴급 차단)
- 웹 애플리케이션 방화벽(WAF)에
Content‑Security‑Policy: script-src 'self'헤더를 강제 적용하고,script-src에 허용되지 않은 인라인 스크립트를 차단합니다. 구현 난이도 ★☆☆ (WAF 설정만 수정), 운영 영향 ⭑ (일부 기존 인라인 스크립트가 동작 중지될 수 있음). 검증은 WAF 로그에서csp-violation이벤트 확인으로 수행합니다.
- 웹 애플리케이션 방화벽(WAF)에
-
단기(완화)
- SharePoint 관리 센터 → “HTML 필드 보안” 옵션을 활성화해 사용자 입력에 대한 HTML 인코딩을 강제하고,
AllowUnsafeUpdates를 비활성화합니다. 구현 난이도 ★★☆ (관리 UI 조작), 운영 영향 ⭑ (기존 커스텀 웹 파트가 정상 표시되지 않을 수 있음). 검증은 ULS 로그에 XSS 패턴이 더 이상 기록되지 않는지 모니터링합니다. - IIS URL 재작성 모듈을 이용해
.*%3Cscript.*와 같은 요청을 403으로 차단하는 규칙을 추가합니다. 구현 난이도 ★★★ (규칙 작성·배포), 운영 영향 ⭑⭑ (정상적인 URL 인코딩이 있는 경우 차단 가능성). 검증은 차단 로그와 정상 트래픽 비교로 진행합니다.
- SharePoint 관리 센터 → “HTML 필드 보안” 옵션을 활성화해 사용자 입력에 대한 HTML 인코딩을 강제하고,
-
근본(해결)
- Microsoft에서 제공하는 최신 보안 업데이트(예: SharePoint 2016 KB xxxxx, SharePoint 2019 KB yyyyy, Subscription Edition KB zzzzz)를 적용합니다. 구현 난이도 ★★★ (패치 배포·재시작 필요), 운영 영향 ⭑⭑⭑ (서비스 재시작에 따른 다운타임). 검증은 패치 버전 확인 및 취약점 스캐너 재검사로 수행합니다.
-
잔여 리스크
- 패치 적용 전까지는 위 임시 차단·WAF CSP 조합이 XSS 페이로드 삽입을 크게 억제하지만, 복잡한 인코딩 우회 기법은 일부 탐지를 회피할 수 있습니다. 따라서 EPSS 0.00532(실측 악용 가능성 낮음)와 다중 소스 교차검증 결과를 고려해 지속적인 로그 모니터링과 정기적 보안 점검을 유지해야 합니다.
-
인시던트 대응 플레이북
1️⃣ 알림 발생 시SharePointULS및IIS로그에서 해당RequestUrl,UserId를 추출합니다.
2️⃣ 의심 사용자 세션을 즉시 무효화하고, 관련 쿠키를 강제 재인증하도록 조치합니다.
3️⃣ 차단된 요청의 IP와 Referer 정보를 WHOIS·ThreatIntel과 대조해 악성 여부 판단 후 방화벽에 차단 규칙 추가합니다.
4️⃣ 사후 분석을 위해 샌드박스 환경에서 해당 페이로드를 재현하고, WAF/CSP 정책 적용 효과를 검증합니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.3 · non-KEV · EPSS=0.00532 · exploit=hard · in_scope=None