🇰🇷 한글 설명
Windows 환경에서 Angular SSR의 CommonEngine이 상대 경로 요청을 처리할 때 백슬래시(\)를 포함한 경로 탐색 세그먼트를 잘못 처리하는 취약점입니다. 이로 인해 공격자는 인증 없이 설정된 공개 디렉토리와 이름이 유사한 인접 디렉토리에 있는 다른 사전 렌더링된 HTML 페이지를 가져올 수 있습니다. 해당 문제는 임의 파일 읽기를 허용하지는 않지만, 특정 조건이 충족되는 Windows 배포 환경에서 정보 노출 위험이 있습니다.
💡 쉬운 설명
윈도우 운영체제에서 Angular 웹 서비스를 사용할 때, 경로를 조작하여 원래 보여주면 안 되는 다른 웹 페이지 내용을 몰래 볼 수 있는 문제입니다. 보안 설정이 겹치는 폴더가 옆에 있을 경우, 공격자가 이를 이용해 다른 사용자의 페이지 정보를 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
The Angular SSR is a server-rise rendering tool for Angular applications. Prior to versions 20.3.36, 21.2.23, and 22.1.7, the CommonEngine retrieveSSGPage prerendered-page retrieval logic in @angular/ssr/node, and in @angular/ssr for versions 17 through 18, accepts a relative request URL containing a backslash parent-traversal segment on Windows. The non-special resolve:// URL base preserves the backslash, path.join interprets it as a Windows separator, and the pagePath.startsWith(normalize(publicPath)) check incorrectly accepts a sibling output directory whose name shares the configured public-directory prefix. An unauthenticated requester can therefore retrieve a sibling prerendered HTML page when that page contains the Angular SSG marker. The issue is limited to Windows deployments that pass relative request URLs to CommonEngine.render, have a prefix-sharing sibling output directory, and contain qualifying prerendered Angular HTML; it does not provide arbitrary file read. This issue is fixed in versions 20.3.36, 21.2.23, and 22.1.7.
📍 영향받는 시스템
@angular/ssr (v17-18), @angular/ssr/node (v20.3.36 미만, v21.2.23 미만, v22.1.7 미만)
⚔️ 공격 벡터
Windows 환경에서 백슬래시(\)를 포함한 상대 경로 URL을 CommonEngine.render에 전달하여 인접 디렉토리의 HTML 페이지 요청
🛡️ 대응 방법
Angular SSR 버전을 20.3.36, 21.2.23 또는 22.1.7 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 @angular/ssr의 버전이 취약한 버전 범위(v17-18 또는 패치 전 버전)에 해당하는지 확인하십시오.
💻 영향받는 소프트웨어
IBM WebSphere Application Server