🇰🇷 한글 설명
Angular의 @angular/common 패키지에서 SSR 및 하이드레이션 활성화 시 HttpTransferCache가 인증 정보(withCredentials, Cookie)를 확인하지 않고 HTTP 요청 결과를 캐싱하는 취약점이 발견되었습니다. 이로 인해 사용자별 개인 정보가 포함된 응답이 공유된 TransferState에 저장되어, CDN이나 프록시 서버를 통해 다른 사용자에게 유출될 수 있는 정보 노출 위험이 있습니다.
💡 쉬운 설명
웹사이트가 서버에서 미리 페이지를 만들 때, 로그인한 사용자의 개인 정보를 실수로 공용 저장소에 저장해버리는 문제입니다. 이 때문에 다른 사람이 접속했을 때 내 개인 정보가 담긴 페이지를 보게 될 위험이 있습니다.
🇺🇸 원문 (English)
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23, a vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. The HttpTransferCache utility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application via TransferState. However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability. This vulnerability is fixed in 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23.
📍 영향받는 시스템
@angular/common (22.0.0-rc.2, 21.2.15, 20.3.22, 19.2.23 미만 버전)
⚔️ 공격 벡터
인증 정보가 포함된 HTTP 요청의 응답이 공유 캐시(CDN, 프록시 등)에 저장되어 타인에게 노출되는 방식
🛡️ 대응 방법
Angular 프레임워크를 최신 보안 패치 버전(22.0.0-rc.2, 21.2.15, 20.3.22, 19.2.23 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 @angular/common의 버전이 취약점이 해결된 버전보다 낮은지 확인하십시오.
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server