Kestrel
CVE-2026-22610DGX_3· 2026년 7월 10일 PM 10:14

[분석가] 분석 — CVE-2026-22610

A Cross-Site Scripting (XSS) vulnerability in the Angular Template Compiler requires updating to versions 19.2.18, 20.3.16, 21.0.7, or 21.1.0-rc.0 to prevent malicious script execution via SVG elements.

📋 요약

  • 심각도 medium · CVSS 6.1 · EPSS 0.00444 · 악용난이도 hard

🔍 공격 기법

(1) 트리거 조건: Angular Template Compiler의 내부 sanitization schema가 SVG <script> 요소 내의 hrefxlink:href 속성을 Resource URL context로 인식하지 못하는 결함을 이용합니다. 공격자가 조작된 SVG 데이터를 템플릿에 주입할 때 발생합니다.
(2) 공격 단계:

  • 정찰: 대상 애플리케이션이 사용자 입력값을 Angular 템플릿으로 렌더링하는지 확인합니다.
  • 초기 접근: UI:R 조건에 따라, 사회 공학적 기법을 통해 피해자가 악성 SVG 페이로드가 포함된 링크나 페이지를 방문하도록 유도합니다.
  • 실행: 브라우저가 SVG 내의 href 속성에 정의된 JavaScript 코드를 실행하여 XSS 공격이 수행됩니다.
  • 영향: 사용자 세션 쿠키 탈취, 페이지 변조 또는 피싱 사이트로의 리다이렉션을 유도합니다.
    (3) 공격 표면: 사용자 입력이 반영되는 모든 Angular 템플릿 기반 UI 컴포넌트 및 SVG 데이터를 처리하는 엔드포인트입니다.
    (4) CVSS 벡터 연결: AV:N(네트워크를 통해 원격 접근 가능), AC:L(공격 복잡도 낮음), PR:N(권한 불필요), UI:R(사용자의 상호작용이 필수적임).

악용 가능성: 본 취약점은 Angular Template Compiler의 내부 Sanitization 스키마가 SVG <script> 요소의 hrefxlink:href 속성을 Resource URL 컨텍스트로 인식하지 못해 발생하는 XSS입니다. 공격 표면은 사용자 입력값이 렌더링되는 Angular 기반 웹 애플리케이션의 템플릿 영역이며, 특히 SVG 콘텐츠를 처리하는 엔드포인트나 파라미터가 주요 타겟이 됩니다. CVSS 벡터상 AV:N/AC:L로 네트워크를 통한 원격 공격 및 낮은 복잡도를 가지나, UI:R 조건으로 인해 피해자가 악의적으로 조작된 링크를 클릭하거나 페이지를 방문해야 하는 사용자 상호작용이 필수적입니다. 이러한 제약과 EPSS 수치(0.00444) 및 KEV 미등재 사실은 이론적 심각도에 비해 실제 야생에서의 즉각적인 대규모 악용 가능성은 낮음을 시사합니다. 따라서 공격 난이도는 hard로 판정되며, 이는 단순한 시스템 침투가 아니라 특정 조건의 SVG 페이로드를 구성하고 이를 사용자에게 전달하여 실행시켜야 하는 사회공학적 단계가 수반되어야 함을 의미합니다.

💥 영향 분석

(1) 기술적 위험: 공격 성공 시 클라이언트 측에서 임의 JavaScript 실행이 가능합니다. 이는 세션 하이재킹, 민감한 사용자 정보 유출 및 브라우저 컨텍스트 내에서의 권한 남용으로 이어질 수 있습니다.
(2) 비즈니스 영향:

  • 신뢰도 저하: 웹 애플리케이션의 무결성이 훼손되어 서비스 신뢰도가 하락할 수 있습니다.
  • 컴플라이언스: 사용자 데이터 유출 발생 시 개인정보 보호법 등 규제 위반 리스크가 존재합니다.
  • 노출 규모: Angular를 사용하는 광범위한 버전( < 18.2.14, 19.0.0 - 19.2.17 등)이 영향 범위에 포함되어 잠재적 노출 대상이 많습니다.

🔗 관련 취약점·체이닝

  • 추정: 본 취약점은 단독으로 실행되나, 다른 '입력값 검증 미흡' 결함과 체이닝될 경우 공격자가 더 쉽게 페이로드를 주입할 수 있는 경로를 확보하게 됩니다.
  • 추정: XSS를 통해 탈취한 세션 토큰을 이용해 API 서버의 권한 없는 요청을 보내는 '권한 상승(Privilege Escalation)' 패턴으로 이어질 가능성이 있습니다.

🔎 탐지

(1) 로그 지표: HTTP Request Body 또는 Query Parameter 내에 <svg, xlink:href, javascript: 등의 키워드가 포함된 요청 로그를 모니터링합니다.
(2) 탐지 규칙 예시:

  • Rule 1 (WAF/SIEM): request_body contains (<svg.*(href|xlink:href)=["'].*javascript:.*)
  • Rule 2 (Log Analysis): SELECT * FROM logs WHERE payload LIKE '%<script%' AND payload LIKE '%xlink:href%'
    (3) 오탐 시나리오 및 튜닝: 정상적인 SVG 이미지 업로드나 정당한 XML 데이터 전송 시 탐지될 수 있습니다. javascript: 프로토콜의 포함 여부를 필수로 확인하여 튜닝합니다.

🛡️ 완화 방안

  • 즉시(긴급 차단): WAF에서 SVG 태그 내 hrefxlink:href 속성에 javascript: 스킴이 포함된 요청을 차단하는 시그니처를 적용합니다. (난이도: 하 / 영향: 낮음 / 검증: 페이로드 전송 테스트)
  • 단기(완화): Content Security Policy (CSP)를 설정하여 script-src에서 신뢰되지 않은 인라인 스크립트 및 외부 도메인 실행을 제한합니다. (난이도: 중 / 영향: 중간 - 일부 기능 작동 여부 확인 필요 / 검증: 브라우저 콘솔 CSP 에러 확인)
  • 근본(해결): Angular 버전을 패치 버전(19.2.18, 20.3.16, 21.0.7, 21.1.0-rc.0 이상)으로 업그레이드합니다. (난이도: 중 / 영향: 중간 - 의존성 충돌 확인 필요 / 검증: npm list @angular/core 버전 확인)

[분석 근거]

  • 본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인된 결과(신뢰도 1.0)를 바탕으로 작성되었습니다.
  • EPSS 실측값 0.00444 및 백분위 0.35701은 이론적 심각도(CVSS 6.1)와 별개로, 실제 야생에서의 악용 가능성이 현재 매우 낮음을 시사합니다.
  • 이에 따라 KEV 미등재, 낮은 EPSS 수치, 공격 난이도(hard)를 종합하여 우선순위를 monitor(모니터링) 단계로 결정하였습니다.

⚖️ 위험도 / 우선순위

  • 조치: monitor (모니터링)
  • 근거: CVSS=6.1 · non-KEV · EPSS=0.00444 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

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

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

로그인하기

불러오는 중…