CVE-2026-40683OpenStack Keystone在28.0.1之前的版本中存在严重的逻辑缺陷。在使用LDAP身份后端且默认配置下,系统未能将LDAP返回的用户启用状态属性正确转换为布尔值。由于Python将非空字符串视为真值,导致在LDAP中已标记为禁用的用户在Keystone中被视为启用状态。该漏洞允许未授权的用户绕过安全限制进行登录并执行操作。
该漏洞的根源位于OpenStack Keystone的LDAP身份后端实现中,具体涉及`UserApi`类的`_ldap_res_to_model`方法。问题出在条件判断逻辑上:该方法仅在配置选项`user_enabled_invert`被显式设置为True时,才会执行将LDAP属性字符串转换为布尔值的操作。由于该配置项默认为False,代码直接使用了从LDAP查询返回的原始字符串值(例如"FALSE")。在Python编程语言中,任何非空字符串(包括"FALSE")在布尔上下文中都会被判定为真值。因此,尽管LDAP目录服务中明确标记该用户账户为禁用状态,Keystone却将其解析为启用状态。这一逻辑错误破坏了身份验证的完整性,使得攻击者可以利用被禁用账户的凭证成功绕过认证机制,获取有效的身份令牌并进而访问云平台资源。