# N/A
## 概述
OpenStack keystonemiddleware 的 external_oauth2_token 中间件存在安全漏洞,因未对传入的身份验证头进行清理,导致攻击者可伪造身份头实现权限提升或用户冒充。
## 影响版本
- 10.5 至 10.7 且低于 10.7.2
- 10.8
- 10.9 且低于 10.9.1
- 10.10 至 10.12 且低于 10.12.1
## 细节
external_oauth2_token 中间件在处理 OAuth 2.0 令牌时,未对传入的 HTTP 头(如 `X-Is-Admin-Project`、`X-Roles`、`X-User-Id`)进行适当的过滤和验证。攻击者在通过身份认证后,可构造恶意请求头注入这些字段。
## 影响
已认证的攻击者可利用该漏洞伪造关键身份信息,实现权限提升或冒充其他用户。所有启用 external_oauth2_token 中间件的部署均受影响。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Bug #2129018 “[OSSA-2026-001] Privilege Escalation via Identity ...” : Bugs : keystonemiddleware -- 🔗来源链接
标签:
神龙速读:
### 关键信息概要
#### 1. 漏洞详情
- **漏洞编号**: OSSA-2026-001, CVE-2026-22797
- **漏洞类型**: 权限升级(通过伪造的身份头)
- **影响版本**: keystonemiddleware和external_oauth2_token在多个Keystone版本中受影响
#### 2. 漏洞描述
- **描述**: 当处理OAuth2.0令牌时,`external_oauth2_token`中间件未清理传入的身份头信息,仅在某些情况下设置`HTTP_X_IS_ADMIN_PROJECT`。这使得攻击者可以通过伪造的身份头(如`X-Is-Admin-Project`)在未显示为管理员的情况下执行权限升级。
#### 3. 影响
- **影响范围**: 该漏洞允许攻击者通过伪造的身份头实现权限升级,影响所有使用`external_oauth2_token`中间件的部署。
#### 4. 修复方案
- **修复步骤**:
1. 在处理请求的开始加入`request.remove_auth_headers()`调用,清理所有传入的身份头。
2. 显示未设置管理员时未设置`HTTP_X_IS_ADMIN_PROJECT`。
#### 5. CVE References
- **CVE编号**: CVE-2026-22797
标题: oss-security - [OSSA-2026-001] OpenStack keystonemiddleware: Privilege Escalation via Identity Headers in External OAuth2 Tokens (CVE-2026-22797) errata 1 -- 🔗来源链接
标签:
神龙速读:
## 关键漏洞信息
### CVE
- **CVE编号**: CVE-2026-22797
### 影响版本
- **受影响版本**:
- keystonemiddleware: >=10.5.0 <10.7.2
- keystonemiddleware: >=10.8.0 <10.9.1
- keystonemiddleware: >=10.10.0 <10.12.1
### 描述
Grzegorz Grasza 与 Red Hat 报告了一个 keystonemiddleware 中 external_oauth2_token 中间件的漏洞。该中间件在处理 OAuth 2.0 令牌前未能清理传入的身份验证标头,导致攻击者可通过伪造的身份标头(如 X-Is-Admin-Project、X-Roles 或 X-User-Id)进行权限提升或冒充其他用户。
### 补丁
- [Caracal 2024.1](https://review.opendev.org/973499)
- [Dalmatian 2024.2](https://review.opendev.org/973497)
- [Epoxy 2025.1](https://review.opendev.org/973496)
- [Flamingo 2025.2](https://review.opendev.org/973495)
- [Gazpacho 2026.1](https://review.opendev.org/973494)
### 参考链接
- [Launchpad Bug](https://launchpad.net/bugs/2129018)
- [CVE Details](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-22797)
### 注意事项
- 2024.1 的未维护分支将不再接收新的版本更新,但会提供补丁
- 漏洞发生是因为中间件在某些条件不满足时留下了伪造值
- 修复方法是在请求处理开始时调用 remove_auth_headers(),以清理所有身份标头
暂无评论