Sequelize — это инструмент ORM Node.js. До версии 6.37.8 существовала SQL-инъекция через неэкранированный тип приведения в JSON/JSONB при обработке предложений. Функция _traverseJSON() разделяет ключи пути JSON на :: для извлечения типа приведения, который интерполируется в исходном виде в CAST(...
AS <type>) SQL. Злоумышленник, контролирующий ключи объекта JSON, может внедрить произвольный SQL-код и извлечь данные из любой таблицы. Эта уязвимость исправлена в версии 6.37.8.
Показать оригинальное описание (EN)
Sequelize is a Node.js ORM tool. Prior to 6.37.8, there is SQL injection via unescaped cast type in JSON/JSONB where clause processing. The _traverseJSON() function splits JSON path keys on :: to extract a cast type, which is interpolated raw into CAST(... AS <type>) SQL. An attacker who controls JSON object keys can inject arbitrary SQL and exfiltrate data from any table. This vulnerability is fixed in 6.37.8.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Sequelizejs Sequelize
cpe:2.3:a:sequelizejs:sequelize:*:*:*:*:*:node.js:*:*
|
— |
6.37.8
|