[HIGH] SetupSuperAdmin 接口暴露:无速率限制,可被爆破 #6

Closed
opened 2026-04-30 03:44:39 +08:00 by lan · 0 comments
Owner

漏洞描述

POST /api/v1/admin/setup/super-admin 接口仅依赖 setup_secret 保护,存在以下问题:

  1. 无速率限制 — 攻击者可无限次尝试爆破 setup_secret
  2. 明文存储 — setup_secret 以明文存储在 config.yaml 中,无哈希保护
  3. 全局可访问 — 初始化完成后接口仍然可用,未自动禁用

影响文件

  • internal/handler/setup_handler.go — 处理 Setup 请求
  • internal/service/setup_service.go — 验证 setup_secret 并赋予超级管理员角色

风险

如果 setup_secret 被泄露或爆破成功,攻击者可将任意用户提升为超级管理员,获得系统全部权限。

修复建议

  1. 完成初始化后自动禁用该路由(可通过环境变量或数据库标志控制)
  2. 添加 IP 白名单限制(仅允许 localhost 或管理员 IP)
  3. 添加速率限制(如 5 次/分钟)
  4. 考虑使用一次性 token 代替静态 secret

严重程度

HIGH — 直接导致权限提升到最高级别。

## 漏洞描述 `POST /api/v1/admin/setup/super-admin` 接口仅依赖 `setup_secret` 保护,存在以下问题: 1. **无速率限制** — 攻击者可无限次尝试爆破 setup_secret 2. **明文存储** — setup_secret 以明文存储在 `config.yaml` 中,无哈希保护 3. **全局可访问** — 初始化完成后接口仍然可用,未自动禁用 ## 影响文件 - `internal/handler/setup_handler.go` — 处理 Setup 请求 - `internal/service/setup_service.go` — 验证 setup_secret 并赋予超级管理员角色 ## 风险 如果 setup_secret 被泄露或爆破成功,攻击者可将任意用户提升为超级管理员,获得系统全部权限。 ## 修复建议 1. 完成初始化后自动禁用该路由(可通过环境变量或数据库标志控制) 2. 添加 IP 白名单限制(仅允许 localhost 或管理员 IP) 3. 添加速率限制(如 5 次/分钟) 4. 考虑使用一次性 token 代替静态 secret ## 严重程度 **HIGH** — 直接导致权限提升到最高级别。
lan closed this issue 2026-04-30 12:23:20 +08:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: carrot_bbs/backend#6