🔴 《严重安全漏洞:CVE-2026-54658》

CVSS 评分: 严重(9.8)  状态: Received  发布时间: 2026-07-28


漏洞简介

CVE-2026-54658 是一个存在于 Hypequery 项目中的 SQL 注入(SQL Injection)漏洞,对应 CWE-89 分类。Hypequery 是一个用于 ClickHouse 的 TypeScript 语义层(semantic layer),其核心功能包括参数化查询和值转义。

在版本 2.0.2 之前,位于 packages/clickhouse/src/core/utils.ts 中的 escapeValue() 函数在处理参数替换时,未能正确转义单引号(')之前的反斜杠(\)。具体来说,当攻击者控制的查询参数以反斜杠结尾时,该反斜杠会转义掉用于闭合字符串的单引号,从而使得后续的 SQL 片段能够逃逸出原本的字符串上下文,实现任意 SQL 语句的注入。

该漏洞的 CVSS 3.1 评分为 9.8(严重),攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需权限(PR:N),无需用户交互(UI:N),影响范围不改变(S:U),对机密性、完整性和可用性均造成高影响(C:H/I:H/A:H)。

影响范围

  • 受影响版本:Hypequery 中 @hypequery/clickhouse 包的所有版本,低于 2.0.2。
  • 修复版本:2.0.2 版本已修复该漏洞。
  • 相关组件packages/clickhouse/src/core/utils.ts 中的 escapeValue() 函数。

风险分析

  1. 攻击方式:攻击者可以通过构造包含尾部反斜杠的恶意查询参数,利用 escapeValue() 函数未转义反斜杠的缺陷,使反斜杠转义掉 SQL 语句中的闭合单引号,从而注入额外的 SQL 命令。由于 ClickHouse 支持类 SQL 语法,攻击者可以执行任意查询,包括读取、修改或删除数据。

  2. 攻击后果

    • 数据泄露:攻击者可利用注入的 SQL 查询读取 ClickHouse 数据库中所有敏感数据,包括用户信息、业务数据等。
    • 数据篡改:攻击者可以执行 INSERTUPDATEALTER 等操作,破坏数据完整性。
    • 拒绝服务:通过注入恶意查询(如资源密集型查询或 DROP TABLE 等),可能导致数据库服务不可用。
    • 权限提升:如果 ClickHouse 用户权限配置不当,攻击者可能利用注入获取更高权限,进一步控制数据库乃至整个系统。
  3. 利用条件:攻击者需要能够控制传递给 Hypequery 的查询参数(例如通过 HTTP 请求、API 调用等),且应用程序使用了受影响版本的 @hypequery/clickhouse 包。由于无需认证和用户交互,该漏洞在公网暴露的场景下极易被利用。

  4. 修复建议:立即将 @hypequery/clickhouse 包升级至 2.0.2 或更高版本。如果无法立即升级,应严格过滤用户输入,确保参数中不包含未转义的反斜杠或单引号,或使用预编译语句(prepared statements)替代字符串拼接。


🔍 技术细节

字段
CVE ID CVE-2026-54658
CVSS 评分 9.8 🔴
严重程度 严重
CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE 分类 CWE-89
发布时间 2026-07-28
最后更新 2026-07-28
状态 Received
数据来源 security-advisories@github.com

🔗 参考链接