CVE-2026-40213OpenStack Cyborg 在 16.0.1 之前的版本中存在严重的权限绕过漏洞。由于多个 API 端点使用了 `rule:allow` 作为默认策略,系统无条件授权任何携带有效 Keystone 令牌的请求,完全忽略了用户的角色分配、项目成员资格或作用域限制。这导致一个没有任何角色权限的认证用户,仍然可以执行危险操作,例如通过 agent RPC 在任意计算节点上重新编程 FPGA 比特流,从而严重影响系统的机密性、完整性和可用性。
该漏洞的根本原因在于 OpenStack Cyborg 服务对多个 API 端点的默认策略配置错误。在 OpenStack 的策略系统中,`check_str='@'` 或 `rule:allow` 被用来表示“允许所有”,这在生产环境中通常是极其危险的配置。受影响的 Cyborg 版本未正确实施基于角色的访问控制(RBAC)。正常情况下,API 请求应经过严格的策略检查,确认用户是否具备特定角色(如 admin 或 project member)以及是否在正确的项目作用域内。然而,由于该配置缺陷,只要用户持有由 Keystone 服务签发的有效令牌,无论其角色为空与否,Cyborg 都会放行请求。这意味着攻击者可以利用此漏洞,向 Cyborg Agent 发送 RPC 请求,触发 FPGA 设备的比特流重编程操作。由于 FPGA 常用于加速关键任务,这种未经授权的重编程可能导致服务拒绝、数据损坏或恶意逻辑植入,攻击链简单且无需特殊权限,危害极大。