🇰🇷 한글 설명
Angular의 서버 사이드 렌더링(SSR) 과정에서 ProcessingInstruction DOM 노드를 직렬화할 때 닫는 태그를 적절히 이스케이프하지 않는 취약점이 발견되었습니다. 공격자가 제어하는 데이터가 포함된 경우, HTML5 RAWTEXT 파싱 과정에서 컨테이너를 조기에 종료시켜 임의의 자바스크립트를 실행할 수 있는 XSS 공격이 가능합니다.
💡 쉬운 설명
웹사이트를 만드는 도구인 Angular에서 특수한 코드를 처리할 때 보안 규칙을 제대로 지키지 않는 문제가 있습니다. 이를 통해 해커가 사용자의 브라우저에서 몰래 악성 코드를 실행할 수 있습니다.
🇺🇸 원문 (English)
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.30, 21.2.22, and 22.1.4, Angular server-side rendering (SSR) in @angular/platform-server serializes ProcessingInstruction DOM nodes inside fallback raw-content elements without escaping matching ancestor closing tags. ProcessingInstruction data escaped greater-than characters but left less-than characters untouched and did not inspect fallback ancestors, so data such as a matching closing tag prematurely terminates noscript, iframe, noembed, or noframes containers. The vulnerable nodes cannot be authored through standard Angular templates; reachability requires application or library code using inject(DOCUMENT).createProcessingInstruction with attacker-controlled data or Renderer2 DOM insertion inside a fallback container. In HTML5 RAWTEXT parsing, the premature close causes subsequent sibling elements to be interpreted as live HTML and enables arbitrary JavaScript execution in a victim's browser. This issue is fixed in versions 20.3.30, 21.2.22, and 22.1.4.
📍 영향받는 시스템
@angular/platform-server 버전 20.3.30, 21.2.22, 22.1.4 미만 버전
⚔️ 공격 벡터
inject(DOCUMENT).createProcessingInstruction 또는 Renderer2를 통해 공격자가 제어하는 데이터가 fallback 컨테이너 내에 삽입될 때 발생
🛡️ 대응 방법
Angular 프레임워크를 최신 보안 패치 버전(20.3.30, 21.2.22, 22.1.4 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 취약한 버전 범위(20.3.30, 21.2.22, 22.1.4 미만)에 해당하는지 확인하십시오.
npm list @angular/platform-server
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server