IPBUF安全漏洞报告
English
CVE-2026-33442 CVSS 8.1 高危

CVE-2026-33442 Kysely SQL注入漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-33442
漏洞类型
SQL注入
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Kysely

相关标签

SQL注入KyselyTypeScriptCVE-2026-33442Web安全

漏洞概述

Kysely是一个类型安全的TypeScript SQL查询构建器。在0.28.12和0.28.13版本中,其查询编译器的`sanitizeStringLiteral`方法仅转义单引号而未转义反斜杠。在MySQL默认开启`BACKSLASH_ESCAPES` SQL模式下,攻击者可通过注入反斜杠来中和单引号的转义效果,从而逃逸JSON路径字符串字面量,注入并执行任意SQL代码。该漏洞可能导致数据泄露、篡改或破坏。

技术细节

该漏洞源于Kysely的`sanitizeStringLiteral`方法对输入过滤不完整。当处理包含单引号的输入时,该方法将其替换为两个单引号(`'` -> `''`),这是标准的SQL转义方式。然而,它忽略了反斜杠字符(`\`)。如果后端数据库是MySQL且开启了默认的`BACKSLASH_ESCAPES`模式,反斜杠被视为转义字符。攻击者构造形如`\'`的Payload时,经过Kysely处理后变为`\''`。在MySQL解析时,前一个反斜杠转义了紧随其后的单引号,导致原本用于闭合字符串的单引号失效,攻击者从而可以逃逸出字符串上下文,拼接任意恶意SQL语句,实现SQL注入攻击。

攻击链分析

STEP 1
步骤1:侦察
攻击者识别目标应用使用了Kysely库(版本0.28.12或0.28.13),并且后端数据库为MySQL且开启了默认的BACKSLASH_ESCAPES模式。
STEP 2
步骤2:构造Payload
攻击者构造包含反斜杠和单引号组合(例如 \')的恶意输入数据。
STEP 3
步骤3:发送请求
攻击者将Payload发送至应用接口,该接口将输入传递给Kysely的查询编译器。
STEP 4
步骤4:逃逸与注入
Kysely将单引号转义为双引号,但保留反斜杠。MySQL解析时,反斜杠转义了单引号,导致字符串闭合逻辑失效,攻击者的SQL代码被执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Conceptual PoC for CVE-2026-33442 // Demonstrating the bypass of sanitizeStringLiteral function vulnerableSanitize(str) { // Kysely 0.28.12/0.28.13 logic: escapes single quotes only return str.replace(/'/g, "''"); } // Attacker payload: A backslash followed by a single quote const userInput = "\\' OR 1=1 --"; // The query construction const query = `SELECT * FROM users WHERE name = '${vulnerableSanitize(userInput)}'`; console.log("Generated SQL:", query); // Output: SELECT * FROM users WHERE name = '\'' OR 1=1 --' /* Analysis in MySQL (BACKSLASH_ESCAPES mode): 1. The string starts at the first quote. 2. It encounters the backslash \ . 3. The backslash escapes the following single quote ' . 4. The string literal effectively ends after the escaped quote. 5. The ' OR 1=1 --' part is interpreted as SQL code, not a string. Result: SQL Injection successful. */

影响范围

Kysely 0.28.12
Kysely 0.28.13

防御指南

临时缓解措施
建议立即将Kysely库升级至0.28.14或更高版本以修复此漏洞。如果暂时无法升级,应在应用层对用户输入进行额外的过滤,特别是移除或转义反斜杠字符,或者确保MySQL的SQL_MODE中不包含BACKSLASH_ESCAPES(但这可能影响其他功能),以阻断攻击路径。

参考链接

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