🟠 高危 | CVE-2026-63757 — SurrealDB versions before 3.1.0 contain a session ...
🟠 【深度分析】高危安全漏洞:CVE-2026-63757
CVSS 评分: 高危(8.7)🟠 状态: Analyzed 发布时间: 2026-07-20
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-63757 |
| CVSS 评分 | 8.7 🟠 |
| 严重程度 | 高危 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CWE 分类 | CWE-306 |
| 发布时间 | 2026-07-20 |
| 最后更新 | 2026-07-22 |
| 状态 | Analyzed |
| 数据来源 | disclosure@vulncheck.com |
CVSS 评分:8.7(高危)
CVSS 向量: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
危害等级: 紧急(建议立即修复)
漏洞概述
CVE-2026-63757 是 SurrealDB 数据库中的一个严重会话劫持漏洞。在版本 3.1.0 之前,HTTP /rpc 端点中的 sessions 方法存在两个关键缺陷:
- 未授权枚举:无需任何身份认证即可返回所有已附加(attached)会话的 UUID。
- 无所有权验证:接受任意会话字段的写入,而不校验提交者是否为会话的合法拥有者。
利用这些缺陷,未认证的远程攻击者可以枚举有效会话标识符,并直接接管已认证用户的会话,从而以该用户的权限读取、写入、删除任意数据,甚至提升自身权限。
受影响组件与版本
| 组件 | 受影响版本范围 | 修复版本 |
|---|---|---|
| SurrealDB | 所有低于 3.1.0 的版本 | 3.1.0 |
SurrealDB 是一个多模型数据库(文档、图、关系型),广泛用于 Web 应用和后端服务。该漏洞影响所有部署了 HTTP RPC 接口的实例。
漏洞原理分析
技术成因
根据 NVD 提供的描述,漏洞位于 SurrealDB 的 HTTP /rpc 端点所暴露的 sessions 方法。该方法本用于管理 RPC 会话,但在实现中存在两个严重的访问控制缺失:
未认证的 UUID 列表公开
sessions方法在没有任何权限检查的情况下,会将当前所有已附加的会话 UUID 列表返回给任何 HTTP 请求者。这相当于把一个未授权用户直接暴露了所有活跃会话的“钥匙”。无所有权验证的会话字段写入
攻击者获取到会话 UUID 后,可以构造包含任意session字段的请求(例如修改会话中的用户身份、角色等属性)。服务器在写入这些字段时,不会验证该会话是否确实属于发起请求的客户端——即缺少“所有权验证”。
攻击向量
攻击者可通过以下步骤实现会话劫持:
步骤 1:枚举会话
发送一个未经认证的 HTTP 请求到/rpc端点,调用sessions方法,获得所有活跃会话的 UUID 列表。步骤 2:劫持会话
针对选定的 UUID,构造一个伪造的 RPC 请求,在其中包含该 UUID 以及攻击者控制的会话字段(如将用户名或角色修改为更高权限的用户)。由于服务器未校验请求者是否真的是该会话的原始持有者,攻击者成功接管会话。步骤 3:执行操作
以被劫持用户的身份执行任意数据库操作(读取、写入、删除),若被劫持用户拥有管理员权限,攻击者即可实现权限提升。
注:CVSS 向量中的 UI:P 说明
CVSS:4.0 向量中包含 UI:P(用户交互:被动),这通常意味着攻击者需要诱使受害者点击链接或执行某些操作才能完成攻击。然而根据公开的漏洞描述,该漏洞可通过直接向 /rpc 端点发送请求独立利用,无需受害者主动交互。可能存在标定差异,但为了尊重 NVD 数据,本文保留该向量信息。在实际利用场景中,攻击者仍可以纯远程方式触发,UI:P 可能仅指受害者需保持活跃会话(被动式交互)或指攻击者需要受害者发起过一次 RPC 请求。
影响评估
| 评估维度 | 详情 |
|---|---|
| 攻击复杂度 | 低(AC:L)。无需特殊技巧,直接发送 HTTP 请求即可。 |
| 所需权限 | 无(PR:N)。完全未认证即可开始枚举和劫持。 |
| 攻击前提 | 无特殊条件(AT:N)。只需目标服务器开放 HTTP RPC 端口。 |
| 用户交互 | 可能需受害者已建立有效会话(UI:P),但攻击者无需受害者主动操作。 |
| 潜在后果 | 机密性、完整性、可用性均受到严重影响(VC:H/VI:H/VA:H)。攻击者可完全控制数据库内容,导致数据泄露、篡改或服务拒绝。 |
| 影响范围 | 仅影响直接受攻击的数据库实例,不扩散到其他系统(SC:N/SI:N/SA:N)。 |
综合风险评级:高危。由于未认证即可远程利用,且漏洞利用难度极低,建议所有受影响版本立即升级。
修复建议
官方修复
SurrealDB 在版本 3.1.0 中修复了该漏洞。请立即将 SurrealDB 升级至 3.1.0 或更高版本。
临时缓解措施
若无法立即升级,可采取以下措施降低风险:
网络访问控制
将 SurrealDB 的 HTTP RPC 接口(默认端口 8000)置于防火墙之后,仅允许可信 IP 范围访问,或使用反向代理对/rpc端点进行认证与授权检查。禁用不需要的 RPC 方法
如果业务中不需要sessions方法,可通过配置禁用该方法的暴露。最小化会话超时
缩短会话过期时间,减少攻击者枚举有效会话的时间窗口。日志监控
开启详细访问日志,监控异常的对/rpc/sessions的请求模式(如短时间内大量请求),以便及时发现攻击行为。
参考资料
- CVE 详情:https://nvd.nist.gov/vuln/detail/CVE-2026-63757
- CWE-306:Missing Authentication for Critical Function(关键功能缺少认证)
- 官方修复版本:SurrealDB 3.1.0 Release Notes(请查阅 SurrealDB 官方公告)
- 披露来源:disclosure@vulncheck.com
免责声明:本分析基于 NVD 官方数据及公开信息撰写,部分技术细节可能因信息来源有限而无法完全确定。请读者结合自身环境进行全面评估,并优先采纳开发者的官方修复方案。