Biblioteka Sequelize we wszystkich wersjach przed 4.44.3 i 5.15.1 jest podatna na SQL Injection z powodu nieprawidłowego escapowania wartości w funkcji pomocniczej sequelize.json(). Luka umożliwia zdalnemu, nieuwierzytelnionemu atakującemu wykonanie dowolnych zapytań SQL na bazie danych.
▸ Pokaż oryginał (EN)
Sequelize, all versions prior to version 4.44.3 and 5.15.1, is vulnerable to SQL Injection due to sequelize.json() helper function not escaping values properly when formatting sub paths for JSON queries for MySQL, MariaDB and SQLite.
Funkcja pomocnicza sequelize.json() nieprawidłowo przetwarza i escapuje wartości podczas formatowania ścieżek podrzędnych (sub paths) w zapytaniach JSON dla baz danych MySQL, MariaDB i SQLite. Atakujący może przekazać odpowiednio spreparowane dane wejściowe, które nie zostaną właściwie oczyszczone, a następnie trafią bezpośrednio do generowanego zapytania SQL. W rezultacie możliwe jest wstrzyknięcie dowolnego kodu SQL i manipulowanie logiką zapytań do bazy danych.
Atakujący może odczytywać, modyfikować lub usuwać dane przechowywane w bazie danych, a w skrajnych przypadkach uzyskać pełną kontrolę nad jej zawartością. Podatność może prowadzić do naruszenia poufności, integralności oraz dostępności danych aplikacji.
Należy zaktualizować bibliotekę Sequelize do wersji 4.44.3 lub nowszej (dla gałęzi 4.x) albo do wersji 5.15.1 lub nowszej (dla gałęzi 5.x). Poprawka została wprowadzona w commicie 9bd0bc111b6f502223edf7e902680f7cc2ed541e dostępnym w repozytorium GitHub projektu.
Sequelize (Sequelizejs) we wszystkich wersjach przed 4.44.3 oraz we wszystkich wersjach przed 5.15.1, w konfiguracji korzystającej z baz danych MySQL, MariaDB lub SQLite.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSequelizejs Sequelize
APPSequelizejs4.0.0 – 4.44.3 (bez)5.0.0 – 5.15.1 (bez)
Powiązane podatności
SQL Injection w Sequelize ORM przez mechanizm replacements
Sequelize.js — injection przez nieprawidłowe filtrowanie parametrów
SQL Injection w bibliotece Sequelize (brak filtrowania atrybutów)
SQL Injection w Sequelize przez nieprawidłowe eskejpowanie kluczy JSON path
SQL Injection w bibliotece Sequelize — brak sanityzacji kluczy JSON path (PostgreSQL)