文章总结: 高危Angular漏洞CVE-2025-66412允许通过SVG和MathML元素绕过安全机制进行存储型XSS攻击。该漏洞源于编译器对特定属性的验证疏忽,攻击者可注入恶意脚本执行任意代码,导致会话劫持和数据泄露。强烈建议立即更新至指定版本,若无法升级则需严格输入验证并配置CSP禁止javascript:URL。
综合评分: 91
文章分类: 漏洞分析,漏洞预警,WEB安全,应用安全,代码审计
高危 Angular 漏洞 (CVE-2025-66412) 允许通过 SVG 和 MathML 绕过进行存储型 XSS 攻击
sec随谈
sec随谈
2025年12月3日 09:04
北京
Angular 是构建移动和桌面 Web 应用程序的热门平台,其维护者发布了一份重要的安全公告,指出Angular 模板编译器中存在一个高危漏洞。该漏洞编号为 CVE-2025-66412,CVSS 评分为 8.5。攻击者可以利用该漏洞绕过框架的内置安全机制,并通过可缩放矢量图形 (SVG) 和 MathML 元素注入恶意脚本。
该漏洞源于Angular编译器对特定HTML属性进行分类的方式存在疏忽。通常情况下,Angular会对输入进行清理以防止跨站脚本攻击(XSS)。然而,该安全公告指出,“编译器的内部安全机制并不完整,这使得攻击者能够绕过Angular内置的安全清理机制。”
核心问题在于该架构未能将某些包含 URL 的属性标记为安全敏感属性。具体而言,SVG(例如 xlink:href)和 MathML(例如 math | href)中的属性未经过严格验证,从而为“注入恶意脚本”留下了漏洞。
或许此漏洞最复杂的方面涉及 SVG 动画元素,例如
攻击者可以利用这些元素上的 attributeName 属性。该安全公告指出,“这些元素上的 attributeName 属性未经过适当验证,使得攻击者能够动态地针对其他元素上的安全敏感属性,例如 href 或 xlink:href。”
通过操纵此绑定,攻击者可以动态地将恶意 JavaScript:URL 分配给 target 属性。“当用户与元素交互(例如点击)时,或者在动画的情况下自动执行时,恶意 JavaScript 代码会在应用程序的源上下文中执行。”
由于这是一个存储型跨站脚本攻击(Stored XSS)漏洞,恶意载荷会被保存在服务器端(例如数据库中),然后发送给受害者。潜在危害非常严重。
报告指出,“一旦被利用,此漏洞允许攻击者在易受攻击应用程序的域内执行任意代码。” 这种访问权限使攻击者能够执行以下操作:
- 会话劫持:“窃取会话 cookie 和身份验证令牌。”
- 数据泄露:“捕获和传输敏感用户数据。”
- 未经授权的操作:以受害者的身份在网站上执行操作。
Angular 团队已在多个主要版本中发布了补丁程序来修复此缺陷。强烈建议开发人员立即将依赖项更新到以下版本:
- 19.2.17
- 20.3.15
- 21.0.2
对于无法立即升级的组织,该建议指出,必须严格遵守输入安全规范。开发人员必须确保绑定到易受攻击属性的数据“绝不能来自不受信任的用户输入(例如,数据库、API 响应、URL 参数)”。
此外,配置一个强大的内容安全策略 (CSP),禁止 javascript: URL,可以提供一层防御来抵御这种攻击。
参考链接:
https://github.com/angular/angular/security/advisories/GHSA-v4hv-rgfq-gp49
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:sec随谈 sec随谈《高危 Angular 漏洞 (CVE-2025-66412) 允许通过 SVG 和 MathML 绕过进行存储型 XSS 攻击》