Angular SSR漏洞允许攻击者访问敏感数据

阅读量4099

发布时间 : 2025-09-12 17:34:39

x
译文声明

本文是翻译文章,文章原作者 Guru Baran,文章来源:cybersecuritynews

原文地址:https://cybersecuritynews.com/angular-ssr-vulnerability/

译文仅供参考,具体内容表达以及含义原文为准。

Angular的服务器端渲染(SSR)实现中发现一个严重漏洞,可能导致攻击者访问敏感用户数据。该漏洞源于Angular处理并发请求的方式,可能造成一个用户会话的数据泄露给另一个用户。

Angular团队已为所有活跃支持版本发布补丁,修复了这一问题。漏洞影响使用@angular/platform-server@angular/ssr@nguniversal/common的应用。

漏洞原理:依赖注入容器的竞争条件

问题核心在于Angular SSR过程中,依赖注入(DI)容器(称为“平台注入器”)存在竞争条件。该注入器负责存储请求特定信息,但被错误地作为JavaScript模块作用域的全局变量存储。

这种设计意味着当服务器同时处理多个请求时,可能意外共享或覆盖全局注入器的状态,导致不同会话间的数据污染。

在实际场景中,此漏洞可能导致应用向一个用户返回包含另一用户数据的页面,泄露渲染页面中或响应头中的敏感信息(如身份验证令牌)。攻击者只需通过网络发送大量请求并检查响应,即可从其他用户的活跃会话中提取泄露数据。由于无需特权位置,任何触发渲染响应的流量都可能被利用,因此风险尤为突出。

多个API(包括bootstrapApplicationgetPlatformdestroyPlatform)因依赖共享状态而被确认存在漏洞。

修复与缓解措施

Angular团队已为所有活跃版本(18、19、20及v21预发布版)发布补丁。修复引入了必要的破坏性变更,尤其是bootstrapApplication函数——在服务器环境中需显式传入上下文,避免隐式状态共享。

为简化更新流程,Angular提供了自动 schematic 工具处理代码修改。开发者需通过运行对应版本的ng update命令升级应用。

对于无法立即应用补丁的情况,可采用临时缓解方案:禁用SSR、移除自定义引导函数中的异步行为,或确保服务器构建显式禁用Angular的“JIT”模式。

本文翻译自cybersecuritynews 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66