CVE-2026-32763Kysely是一款类型安全的TypeScript SQL查询构建器。在0.28.11及更早版本中,MySQL和SQLite方言的JSON路径编译存在SQL注入漏洞。该漏洞源于`visitJSONPathLeg()`函数在处理用户输入时,未对单引号进行转义直接拼接到JSON路径字符串中,攻击者可利用此漏洞注入任意SQL代码。
该漏洞发生在Kysely处理MySQL和SQLite方言的JSON路径查询时。核心问题在于`visitJSONPathLeg()`函数在处理`.key()`和`.at()`方法传入的参数时,直接将其拼接到单引号包裹的JSON路径字符串字面量(如`'$.key'`)中,且未对输入中的单引号字符进行转义。JSON路径属于非参数化的SQL构造,通常需要手动转义以确保安全。尽管Kysely对常规标识符提供了`sanitizeIdentifier()`进行保护,但忽略了JSON路径的安全性。攻击者可以通过提交包含单引号的恶意字符串(例如`' OR 1=1 --`),闭合JSON路径字符串并逃逸出上下文,从而在底层SQL查询中注入并执行任意命令,导致数据泄露或篡改。