漏洞概述 Bitwarden 的自定义用户(Custom Users)可以通过批量移除端点(Bulk-Remove Endpoint)移除管理员(Admins)。该漏洞源于单用户移除路径(Single-User Remove Path)中的角色层级保护未复制到批量移除路径中。 影响范围 供应商: Bitwarden 产品: bitwarden/server 严重程度: 高 (CVSS 7.1) CVE: CVE-2026-57520 报告: HackerOne #3673748 修复: PR #7526 - commit '901bb671' 修复版本: server release '2026.5.0' (2026-05-29) 修复方案 修复方案是在批量移除路径( )中添加与单用户移除路径( )相同的角色层级检查。具体修复代码如下: POC 代码 攻击者可以通过以下步骤利用此漏洞: 1. 攻击者是一个仅具有 权限的自定义用户。 2. 通过 GET 列出成员并读取管理员的组织用户 ID。 3. 单用户移除被正确拒绝: 4. 批量移除成功: HTTP 200 且空 "error" 字段表示管理员已被移除。 披露时间线 2026-04-14: 报告给 HackerOne (#3673748),包含源代码分析和 live PoC。 2026-04-16: 分类,严重程度调整为最终高 7.1,并路由到工程/产品。 2026-04-23: 修复合并到 main: PR #7526, commit 901bb671。 2026-05-29: 修复在服务器版本 2026.5.0 中发布。 2026-06-23: 解决并奖励赏金。供应商确认相同的保护已应用于撤销和恢复端点。 经验教训 当添加“批量执行”的现有处理程序时,授权检查不会自动适用。单用户路径中的每个检查项都应作为批量路径的检查清单。逐行比较两者。 修复一个入口点的补丁并不是对漏洞的完整修复。PR #5590 在 2025 年修复了单用户移除,但批量路径在超过一年的时间内保持开放。当存在层级检查时,应查找所有应共享它的操作。 感谢 @mandreko-bitwarden 和 Bitwarden 安全团队的快速响应和修复。 @thesanjok