🔴 严重 | CVE-2026-54658 — Hypequery is a TypeScript semantic layer for Click...
🔴 《严重安全漏洞: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()函数。
风险分析
攻击方式:攻击者可以通过构造包含尾部反斜杠的恶意查询参数,利用
escapeValue()函数未转义反斜杠的缺陷,使反斜杠转义掉 SQL 语句中的闭合单引号,从而注入额外的 SQL 命令。由于 ClickHouse 支持类 SQL 语法,攻击者可以执行任意查询,包括读取、修改或删除数据。攻击后果:
- 数据泄露:攻击者可利用注入的 SQL 查询读取 ClickHouse 数据库中所有敏感数据,包括用户信息、业务数据等。
- 数据篡改:攻击者可以执行
INSERT、UPDATE或ALTER等操作,破坏数据完整性。 - 拒绝服务:通过注入恶意查询(如资源密集型查询或
DROP TABLE等),可能导致数据库服务不可用。 - 权限提升:如果 ClickHouse 用户权限配置不当,攻击者可能利用注入获取更高权限,进一步控制数据库乃至整个系统。
利用条件:攻击者需要能够控制传递给 Hypequery 的查询参数(例如通过 HTTP 请求、API 调用等),且应用程序使用了受影响版本的
@hypequery/clickhouse包。由于无需认证和用户交互,该漏洞在公网暴露的场景下极易被利用。修复建议:立即将
@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 |
🔗 参考链接
https://github.com/hypequery/hypequery/blob/main/packages/clickhouse/CHANGELOG.md#202
https://github.com/hypequery/hypequery/commit/4dfa9d77d70a08b970e722268b75ca7d13db0bdf
https://github.com/hypequery/hypequery/releases/tag/@hypequery/clickhouse@2.0.2
https://github.com/hypequery/hypequery/security/advisories/GHSA-6wcc-39rp-hh9p