CVE-2026-43001OpenStack Keystone 13至29版本中存在一个安全逻辑漏洞。在处理POST /v3/credentials请求以创建EC2类型凭证时,系统未能正确验证调用者提供的project_id是否与认证的应用凭证所属项目相匹配。这允许持有项目A无限制应用凭证的攻击者,创建一个实际上针对项目B的EC2凭证。攻击者随后可以通过/v3/ec2tokens接口交换令牌,获得作用域为项目B的Keystone令牌,从而在原凭证角色的权限范围内实现跨项目的横向移动。
该漏洞的根源在于OpenStack Keystone在处理通过应用程序凭据创建EC2凭据时的验证逻辑缺失。当用户使用应用程序凭据进行身份验证并请求创建新的EC2凭据时,Keystone默认认为请求上下文中的项目ID是可信的,未将其与底层认证的应用程序凭据所绑定的项目ID进行强制比对。利用该漏洞需要两个步骤:首先,攻击者利用其在项目A拥有的有效应用程序凭据,向Keystone API发送POST请求,在请求体中将目标project_id指定为项目B。由于服务端校验缺失,该EC2凭据被错误地关联到项目B。其次,攻击者使用该凭据调用/v3/ec2tokens接口进行签名验证。Keystone验证通过后,会签发一个作用域为项目B的令牌。由于该令牌保留了原始应用程序凭据的角色权限,攻击者即可利用此令牌访问项目B的资源,导致跨项目的权限越界。