CVE-2026-33468Kysely是一个类型安全的TypeScript SQL查询构建器。在0.28.14版本之前,其`sanitizeStringLiteral`函数存在缺陷,未对反斜杠进行转义。攻击者可利用MySQL默认转义机制绕过过滤,在`CreateIndexBuilder`等组件中注入任意SQL代码,造成严重安全风险。
该漏洞源于Kysely的`DefaultQueryCompiler.sanitizeStringLiteral()`方法实现不当。该方法仅将单引号加倍(' -> '')以防止逃逸,却忽略了反斜杠(\)的处理。在MySQL方言中,默认开启`NO_BACKSLASH_ESCAPES`为OFF,此时反斜杠被视为转义字符。当攻击者输入包含反斜杠的恶意数据(例如`\'`)时,生成的SQL语句中,反斜杠会转义紧跟的单引号,导致原本用于闭合字符串的单引号失效。攻击者借此闭合字符串并追加任意SQL命令。此漏洞主要影响使用`ImmediateValueTransformer`内联值的代码路径,特别是`CreateIndexBuilder.where()`和`CreateViewBuilder.as()`方法。