TALOS-2025-2242 || smallstep Step-CA 证书签发认证绕过漏洞
发布日期 2025年12月17日
CVE编号 CVE-2025-44005
概述 攻击者可以绕过授权检查,强制Step CA的ACME或SCEP配置器在未完成特定协议授权检查的情况下创建证书。
已确认的受影响版本 以下版本经Talos测试、验证或供应商确认为易受攻击。
- smallstep Step-CA 0.28.4
- smallstep Step-CA v0.28.3
产品链接
CVSSv3 评分 10.0 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
CWE CWE-287 - 不恰当的身份验证
详细说明 Smallstep的step-ca是一个开源、轻量级的证书颁发机构(CA),旨在简化数字证书的管理,以实现安全身份验证和加密。它提供工具用于自动化内部服务、设备和用户的证书颁发和续订。通过支持ACME、OIDC和SSH等现代协议,step-ca使得在云原生和DevOps环境中部署和管理证书变得容易。
Smallstep的step-ca平台在设置证书配置器时为用户提供多种选择。其中之一是设置使用ACME协议的配置器。此配置器旨在与一组单独的、用于支持ACME协议流程的ACME API端点配合使用。
该服务中也存在供其他类型配置器使用的端点。这些端点会根据所使用的配置器类型执行令牌授权。这些端点似乎并非设计为与ACME配置器协同工作。当向ACME配置器请求新令牌时,会抛出错误,提示不支持令牌认证。
然而,存在一个漏洞,原因是指定了ACME配置器的令牌被非ACME端点所接受。例如,/sign端点使用配置器的AuthorizeSign方法来验证提供的令牌。以下是ACME配置器的AuthorizeSign方法:
|
|
上述方法不对提供的令牌执行任何验证。这意味着任何标识配置器为ACME配置器的令牌都将被视为有效。
攻击者可以轻松创建一个满足这些要求的令牌,并且能够使用用户step-ca服务中设置的CA对任何CSR(证书签名请求)进行签名。
要利用此漏洞,攻击者需要:
- 创建一个新的CSR。
- 通过使用任意密钥对以下载荷进行签名来创建一个令牌:
|
|
- 使用该令牌向
/sign端点发送请求:1 2 3 4 5$ curl -k https://{step-ca-url}/sign -d "{\"csr\":\"$CSR\",\"ott\":\"$TOKEN\"}" { "crt": "-----BEGIN CERTIFICATE-----\n…" … }
供应商回应
在v0.29.0版本中,ACME和SCEP配置器已更新,以阻止提供令牌的请求。
如果无法升级到v0.29.0或更高版本,可以通过阻止访问/sign端点来缓解此攻击。
时间线
- 2025-09-29 - 首次联系供应商
- 2025-09-30 - 向供应商披露
- 2025-12-02 - 供应商发布补丁
- 2025-12-17 - 公开发布
致谢 Cisco Advanced Security Initiatives Group (ASIG) 的 Stephen Kubik