关键信息总结 漏洞类型: Open Redirect via Unsanitized X-Forwarded-Prefix Header, Chainable to Web Cache Poisoning. 受影响的组件: Angular SSR ( ). 根本原因: in packages/angular/ssr/src/utils/url.ts only strips one leading slash from URL parts. When the X-Forwarded-Prefix header contains multiple leading slashes (e.g., ), the function produces a protocol-relative URL ( ) that browsers interpret as an external redirect. 复现步骤: 1. 创建新的Angular SSR应用. 2. 添加重定向路由. 3. 构建并启动SSR服务. 4. 使用精心设计的请求头发送请求: 预期行为: header应该是安全的相对路径,如 (所有多余斜杠被去除), 而不是一个协议相关的URL. 实际行为: 回应包含一个HTTP 302, 但是 header 包含了协议相关的URL( ), 浏览器将此重定向到外部链接 . 环境信息: - Angular CLI: 21.1.4 - Node: 25.6.0 - Angular: 21.1.4 其他相关: - X-Forwarded-Prefix 在实际生产环境的反向代理中常被使用. - 重定向响应缺乏Cache-Control头,意味着CDN可能会缓存被污染的重定向,并服务给其他用户. - 简单的修复在于改变 的实现方式,绕过存在的行为问题,合理处理连续的斜杠. ###abbit: 在Github上报告漏洞,并已经修复和关闭。