# Angular SVG脚本属性XSS漏洞
## 概述
Angular 模板编译器中存在跨站脚本(XSS)漏洞,因内部清理机制未将 SVG `<script>` 元素的 `href` 和 `xlink:href` 属性识别为资源 URL 上下文。
## 影响版本
- Angular < 19.2.18
- Angular < 20.3.16
- Angular < 21.0.7
- Angular < 21.1.0-rc.0
## 细节
Angular 的内部 sanitization schema 未正确处理 SVG `<script>` 标签中的 `href` 与 `xlink:href` 属性,导致攻击者可能注入恶意脚本并被当作资源 URL 执行,从而触发 XSS。
## 影响
攻击者可利用该漏洞实施跨站脚本攻击,窃取用户会话、破坏页面内容或执行恶意操作。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|---|---|---|
| 1 | None | https://github.com/ashizZz/CVE-2026-22610 | POC详情 |
标题: fix(core): sanitize sensitive attributes on SVG script elements by alan-agius4 · Pull Request #66318 · angular/angular · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键信息
#### 漏洞描述
- **类型**: Cross-Site Scripting (XSS)
- **原因**: 在SVG `<script>` 元素中,`href` 和 `xlink:href` 属性未被视为资源URL进行处理。
- **影响**: 如果攻击者控制的值被插值到这些属性中,可能会导致XSS漏洞。
#### 解決措施
- **更新DOM安全方案**
- **更新清理逻辑**:正确识别并清理`href` 和 `xlink:href` 属性,防止XSS攻击。
#### 相关引用
- **相关链接**: `http://b/472263766`
#### 修复过程
- **提交者**: alan-agius4
- **评审者**: jelbourn, josephperrott, AndrewKushnir
- **合并状态**: 已合并
- **分支**: `angular:main`
### 标签
- `action: merge`
- `area: core`
- `target: minor`
- `target: patch`
- `action: review`
标题: XSS Vulnerability via Unsanitized SVG Script Attributes · Advisory · angular/angular · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 关键信息
- **漏洞类型**: XSS (Cross-Site Scripting)
- **漏洞描述**:
- Angular的模板编译器存在内部清理模式无法识别SVG `<script>` 元素的 `href` 和 `xlink:href` 属性作为资源URL上下文的问题,导致可以执行任意JavaScript。
- **受影响的包**:
- `@angular/compiler`
- `@angular/core`
- **受影响的版本**:
- `@angular/compiler` 和 `@angular/core` 的多个版本(例如:`>=21.1.0-next.0 < 21.1.0-rc.0`, `>=21.0.0-next.0 < 21.0.7` 等)
- **修复版本**:
- `@angular/compiler`: 例如 `21.1.0-rc.0`, `21.0.7` 等
- `@angular/core`: 同上
- **严重性**:
- CVSS v4 基本度量:8.5/10
- 攻击向量:网络
- 用户交互:需要
- **CVE ID**: CVE-2026-22610
- **影响**:
- 会话劫持:窃取会话cookie、本地存储数据或身份验证令牌
- 数据外泄:访问和传输应用内显示的敏感信息
- 未经授权的行为:以身份验证用户的身份执行状态更改操作
- **攻击前提条件**:
- 应用程序必须在模板中使用SVG `<script>` 元素
- 属性必须使用属性或属性绑定
- 绑定的数据必须来自不可信源
- **修复措施**:
- 安装最新补丁版本
- **临时变通方案**:
- 避免动态绑定:不使用Angular模板绑定为SVG `<script>` 元素
- 输入验证:动态值必须使用时,严格验证输入。
- **报告者与修复者**: `alan-agius4`, `josephperrott`, `AndrewKushnir` 等。
标题: fix(core): sanitize sensitive attributes on SVG script elements · angular/angular@91dc91b · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
## 关键漏洞信息
- **漏洞类型**:DOM Sanitization(DOM 安全性清理)
- **重点领域**:SVG `<script>` 元素的 `href` 和 `xlink:href` 属性
- **修复描述**:
- 更新了 DOM 安全模式方案和清理逻辑,以正确识别和清理 SVG `<script>` 元素的 `href` 和 `xlink:href` 属性。
- 关于安全模式的更新,确保了对 SVG `<script>` 元素内这些属性的严格清理。
- **文件变更**:
- `packages/compiler-cli/test/ngtsc/ngtsc_spec.ts`: 添加了针对 SVG `<script>` 元素 URL 属性安全性的测试用例。
- `packages/compiler/src/schema/dom_security_schema.ts`: 更新安全模式方案,包含了对 `script|href` 和 `script|xlink:href` 的支持。
- `packages/core/src/sanitization/sanitization.ts`: 修改函数 `getUrlSanitizer`,增加了对 `href` 和 `xlink:href` 属性的资源清理逻辑。
- `packages/core/test/bundling/router/bundle.golden_symbols.json`: 增加了 `HREF_RESOURCE_TAGS` 和 `SRC_RESOURCE_TAGS` 定义,调整了资源清理标记的常量。
- **代码提交地点**:
- `exterior_commit/91dc91b`
- 由 `alan-agius4` 两周前提交并验证。
- `main` 系列,`vsix-21.1.0` and `v21.1.0-rc.0` 分支。
暂无评论