CVE-2026-33442Kysely是一个类型安全的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注入攻击。