GHSA-XX7M-69FF-9CRP:SurrealDB的 Poison Pill:使用单个字符串崩溃数据库

发布: (2026年2月13日 GMT+8 09:10)
3 分钟阅读
原文: Dev.to

Source: Dev.to

概述

漏洞编号: GHSA-XX7M-69FF-9CRP
CVSS 分数: 6.5(中等)
发布日期: 2026-02-12

SurrealDB 的嵌入式 JavaScript 引擎(QuickJS)中存在一个拒绝服务(DoS)漏洞。通过定义包含过大字符串字面量的脚本函数,攻击者可以在编译阶段触发 空指针解引用(CWE‑476)。这会绕过 Rust 的安全保证,导致数据库进程因段错误而终止。

漏洞细节

  • 组件: QuickJS / rquickjs
  • 攻击向量: 网络(已认证)
  • 影响: 进程崩溃(拒绝服务)
  • 利用状态: 已有概念验证(PoC)

缺陷出在 QuickJS 处理编译期间的大型字符串字面量的方式。攻击者可以提交构造的 SurrealQL 查询,生成巨大的字符串并将其传递给 JavaScript 引擎,从而立即导致崩溃。

受影响的版本

产品受影响的版本
SurrealDB 服务器(使用 rquickjs < 0.11.0)所有 2026‑02‑02 之前的构建版本
SurrealDB 嵌入式(Rust crate)依赖 rquickjs < 0.11.0 的版本

修复措施

依赖更新

# Cargo.toml
dependencies:
- rquickjs = "0.6"
+ rquickjs = "0.11.0"
  • 将 SurrealDB 升级到包含 rquickjs ≥ 0.11.0 的版本。
  • 若不需要嵌入式脚本,禁用该功能。
  • 实施查询分析,在字符串字面量过大时予以拒绝,防止其进入执行引擎。

操作步骤

  1. 检查当前版本
    surreal version
  2. 拉取最新的 Docker 镜像
    docker pull surrealdb/surrealdb:latest
  3. 重启数据库实例
  4. 验证修复 – 在测试环境中尝试定义包含大字符串的函数,现应返回错误而不是崩溃。

参考资料

在通报网站上阅读 GHSA‑XX7M‑69FF‑9CRP 的完整报告,可获取交互式图表和完整的利用分析。

0 浏览
Back to Blog

相关文章

阅读更多 »