🔴 严重 | CVE-2026-46354 — Coder allows organizations to provision remote dev...
🔴 《严重安全漏洞:CVE-2026-46354》
CVSS 评分: 严重(9.1) 状态: Received 发布时间: 2026-07-07
漏洞简介
CVE-2026-46354 是一个存在于 Coder 平台中的安全漏洞,涉及 CWE-347(签名验证不充分) 分类。Coder 是一个允许组织通过 Terraform 配置远程开发环境的工具。
该漏洞的核心问题出在 azureidentity.Validate() 函数中。该函数用于验证 Azure 实例身份(Azure Instance Identity)的 PKCS#7 签名证书。具体来说,Validate() 仅验证了 PKCS#7 签名者证书是否链式追溯到受信任的 Azure 证书颁发机构(CA),但从未验证 PKCS#7 签名本身的有效性。
这意味着攻击者可以构造一个伪造的请求:将一个合法的 Azure 证书与任意内容(例如 {"vmId":"<target>"})打包在一起。由于签名本身未被校验,系统会错误地接受这个伪造的 vmId,并返回受害工作区代理(workspace agent)的会话令牌(session token)。
攻击者无需任何身份认证,只需知道目标虚拟机的 vmId(这是一个 UUIDv4 格式的标识符)。虽然 UUIDv4 通常难以猜测,但这一限制在实际攻击中通常需要攻击者事先获得某种形式的访问权限才能获取该 ID。
影响范围
受影响的 Coder 版本为:
- 低于 2.24.5 的版本
- 低于 2.29.13 的版本
- 低于 2.30.8 的版本
- 低于 2.31.12 的版本
- 低于 2.32.2 的版本
- 低于 2.33.3 的版本
已修复的版本为:
- 2.24.5
- 2.29.13
- 2.30.8
- 2.31.12
- 2.32.2
- 2.33.3
风险分析
根据 CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N,该漏洞的严重性较高,具体分析如下:
- 攻击向量(AV:N):攻击者可通过网络远程利用,无需物理访问。
- 攻击复杂度(AC:L):攻击者只需构造一个包含合法 Azure 证书的伪造请求,技术门槛较低。
- 权限要求(PR:N):无需任何身份认证即可发起攻击。
- 用户交互(UI:N):无需受害者任何操作。
- 影响范围(S:U):漏洞仅影响被攻击的单个组件,不波及其他系统。
- 机密性影响(C:H):攻击者成功后可获取受害工作区代理的会话令牌,导致敏感信息泄露。
- 完整性影响(I:H):攻击者可以伪造
vmId,从而篡改身份验证过程。 - 可用性影响(A:N):该漏洞不直接导致服务不可用。
可能的攻击后果:攻击者通过伪造的 vmId 获取工作区代理的会话令牌后,可以冒充合法用户访问远程开发环境,执行任意操作,包括读取、修改代码、访问敏感数据、部署恶意软件等。由于无需认证,该漏洞在攻击者已知目标 vmId 的情况下极易被利用。
临时缓解措施:在无法立即升级的情况下,建议重新配置所有 Azure 模板,使用令牌认证(token authentication)替代 azure-instance-identity 认证方式,以规避该漏洞。
🔍 技术细节
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-46354 |
| CVSS 评分 | 9.1 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| CWE 分类 | CWE-347 |
| 发布时间 | 2026-07-07 |
| 最后更新 | 2026-07-07 |
| 状态 | Received |
| 数据来源 | security-advisories@github.com |