CVE-2025-66412Angular是一个用于使用TypeScript/JavaScript构建移动和桌面Web应用程序的开发平台。该漏洞存在于Angular Template Compiler的内部安全模式中,由于安全模式不完整,攻击者可以绕过Angular内置的安全清理机制。具体来说,编译器未能将某些包含URL的属性(如可能包含javascript:协议的属性)正确分类为需要严格URL安全性验证的属性,从而允许攻击者注入恶意脚本代码。此漏洞为存储型XSS,恶意脚本会被永久存储在应用程序中,当其他用户访问受影响页面时自动执行,可能导致会话劫持、敏感数据窃取、恶意操作执行等严重后果。漏洞影响Angular 19.2.17之前、20.3.15之前和21.0.2之前的所有版本。
漏洞根源在于Angular Template Compiler的安全模式(security schema)对URL-holding属性的处理不完善。在Angular的模板编译过程中,编译器使用安全模式来确定哪些属性需要特殊的安全处理。然而,当前的安全模式未能正确识别和分类某些可能包含javascript:协议的URL属性。攻击者可以利用模板绑定机制注入恶意的javascript: URL,当应用程序渲染包含该绑定的模板时,浏览器会执行其中的JavaScript代码。由于Angular的默认安全清理机制未能拦截此类恶意URL,攻击代码得以成功执行。攻击者需要具备低权限用户身份,并通过诱导其他用户访问包含恶意脚本的页面来触发攻击。该漏洞属于存储型XSS,恶意代码存储在服务器端,影响所有访问受影响页面的用户。