# Rocket.Chat OAuth应用未授权访问漏洞
## 概述
Rocket.Chat 的 API 端点 `GET /api/v1/oauth-apps.get` 在 6.12.0 及更早版本中存在权限绕过问题,允许任意已认证用户访问 OAuth 应用信息。
## 影响版本
影响所有 ≤ 6.12.0 的 Rocket.Chat 版本。
## 细节
该端点未进行足够的权限校验,任何已认证用户只要掌握 OAuth 应用的 ID,即可通过此接口获取包括 `client_id` 和 `client_secret` 在内的敏感信息。
## 影响
攻击者可利用此漏洞窃取 OAuth 应用的敏感凭据,可能导致未授权访问或进一步的权限提升。该问题已在 6.12.0 版本中修复。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Unauthorized Access to OAuth App Details (Versions ≤ 6.12.0) · Advisory · RocketChat/Rocket.Chat · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
## 漏洞关键信息
- **漏洞名称**: Unauthorized Access to OAuth App Details (Versions ≤ 6.12.0)
- **CVE ID**: CVE-2026-23477
- **CVSS 3.1 Score**: 7.7/10
- **CVSS 3.1 base metrics**:
- Attack vector: Network
- Attack complexity: Low
- Privileges required: Low
- User interaction: None
- Scope: Changed
- Confidentiality: High
- Integrity: None
- Availability: None
### 漏洞描述
- **受影响版本**: < 6.12.0
- **修复版本**: >= 6.12.0
- **描述**: 在 Rocket.Chat 版本 < 6.12.0 中,API 端点 `/api/v1/oauth-apps.get` 对任何已认证用户开放,无论用户的角色或权限如何。此端点返回 OAuth 应用配置信息,包括可能敏感的字段如 `client_id` 和 `client_secret`。
### 重现步骤
1. 以普通(非管理员)用户身份登录。
2. 获取 `X-Auth-Token` 和 `X-User-Id`。
3. 发送 HTTP 请求:
```http
GET /api/v1/oauth-apps.get?AppId=zapier
X-Auth-Token: <user_token>
X-User-Id: <user_id>
```
### 受影响文件和代码位置
- **受影响文件**: `apps/meteor/app/api/server/v1/oauthapps.ts`
- **相关代码块**(行 25-45):
```typescript
async get() {
API.v1.addRoute(
'oauth-apps.get',
{ authRequired: true, validateParams: isOAuthAppsGetParams },
{
async get() {
const oauthApp = await OAuthApps.findOneOAuthAppByIdOrClientId(this.queryParams);
if (!oauthApp) {
return API.v1.failure('OAuth app not found.');
}
if ('appId' in this.queryParams) {
apiDeprecationLogger.parameter(this.request.route, 'appId', '7.0.0', this.response);
}
return API.v1.success({
oauthApp,
});
},
}
);
}
```
### 问题所在
代码要求用户认证(`authRequired: true`),但未执行任何授权或权限检查,如 `hasPermissionAsync`。因此,任何已认证用户,不分角色,均可访问该端点并获取敏感配置数据。
### 额外信息
- **影响范围**: Rocket.Chat ≤ 6.12.0
- **潜在影响**:
- `client_id` 和 `client_secret` 的泄露可能导致第三方集成服务的进一步妥协。
- 违反最小权限原则:无管理员角色的用户可访问他们无权查看的配置数据。
- 可能的合规问题,具体取决于 OAuth 集成的使用方式(例如,暴露密钥给云身份提供商)。
Zaproxy alias impedit expedita quisquam pariatur exercitationem. Nemo rerum eveniet dolores rem quia dignissimos.