Kysely — это типобезопасный построитель SQL-запросов TypeScript. В версиях 0.28.12 и 0.28.13 метод sanitizeStringLiteral в компиляторе запросов Kysely экранирует одинарные кавычки (`'` → `''`), но не экранирует обратную косую черту. В MySQL с режимом SQL по умолчанию BACKSLASH_ESCAPES злоумышленник может ввести обратную косую черту перед одинарной кавычкой, чтобы нейтрализовать экранирование, выход за пределы строкового литерала пути JSON и внедрение произвольного SQL.
Версия 0.28.14 устраняет проблему.
Показать оригинальное описание (EN)
Kysely is a type-safe TypeScript SQL query builder. In versions 0.28.12 and 0.28.13, the `sanitizeStringLiteral` method in Kysely's query compiler escapes single quotes (`'` → `''`) but does not escape backslashes. On MySQL with the default `BACKSLASH_ESCAPES` SQL mode, an attacker can inject a backslash before a single quote to neutralize the escaping, breaking out of the JSON path string literal and injecting arbitrary SQL. Version 0.28.14 fixes the issue.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Kysely Kysely
cpe:2.3:a:kysely:kysely:*:*:*:*:*:node.js:*:*
|
0.28.12
|
0.28.14
|