Wszystkie wersje biblioteki Sequelize przed 3.35.1, 4.44.3 i 5.8.11 są podatne na SQL Injection. Luka wynika z braku właściwego eskejpowania kluczy JSON path w dialektach MySQL i MariaDB, co pozwala atakującemu na manipulację zapytaniami SQL.
▸ Pokaż oryginał (EN)
Sequelize all versions prior to 3.35.1, 4.44.3, and 5.8.11 are vulnerable to SQL Injection due to JSON path keys not being properly escaped for the MySQL/MariaDB dialects.
Biblioteka Sequelize podczas budowania zapytań SQL dla dialektów MySQL i MariaDB nie eskejpuje poprawnie kluczy używanych w ścieżkach JSON (JSON path keys). Atakujący może dostarczyć spreparowane dane wejściowe zawierające złośliwe fragmenty SQL, które zostaną osadzone bezpośrednio w wykonywanym zapytaniu. Brak odpowiedniej sanityzacji umożliwia wstrzyknięcie dowolnego kodu SQL (SQL Injection, CWE-89).
Atakujący zdalny, nieuwierzytelniony może odczytać, zmodyfikować lub usunąć dane w bazie danych, a w określonych konfiguracjach uzyskać pełną kontrolę nad systemem bazodanowym.
Należy zaktualizować bibliotekę Sequelize do wersji co najmniej 3.35.1, 4.44.3 lub 5.8.11 (w zależności od używanej gałęzi). Poprawka dostępna jest w repozytorium projektu (commit a72a3f5 oraz pull request #11089).
Sequelize (Sequelizejs) we wszystkich wersjach przed 3.35.1, 4.44.3 oraz 5.8.11, korzystających z dialektów MySQL lub MariaDB
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSequelizejs Sequelize
APPSequelizejs3.0.0 – 3.35.1 (bez)4.0.0 – 4.44.3 (bez)5.0.0 – 5.8.11
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 bibliotece Sequelize — brak sanityzacji kluczy JSON path (PostgreSQL)
SQL Injection w Sequelize przez funkcję pomocniczą sequelize.json()