Biblioteka Sequelize przed wersją 3.35.1 jest podatna na SQL Injection w dialekcie PostgreSQL z powodu braku odpowiedniej sanityzacji kluczy JSON path. Podatność umożliwia nieuwierzytelnionemu atakującemu zdalne wykonanie złośliwych zapytań SQL.
▸ Pokaż oryginał (EN)
sequelize before version 3.35.1 allows attackers to perform a SQL Injection due to the JSON path keys not being properly sanitized in the Postgres dialect.
Podatność wynika z tego, że klucze JSON path przekazywane do zapytań w dialekcie PostgreSQL nie są prawidłowo oczyszczane przed użyciem w zapytaniach SQL. Atakujący może wstrzyknąć złośliwy kod SQL poprzez odpowiednio spreparowane klucze JSON path, które zostaną bezpośrednio włączone do zapytania wykonywanego na bazie danych. Mechanizm ten nie wymaga uwierzytelnienia ani interakcji ze strony użytkownika.
Atakujący może uzyskać nieautoryzowany dostęp do poufnych danych, modyfikować lub usuwać zawartość bazy danych, a w niektórych konfiguracjach może również zaburzyć działanie aplikacji. Pełne naruszenie poufności, integralności i dostępności danych.
Należy zaktualizować bibliotekę Sequelize do wersji 3.35.1 lub nowszej, w której problem został naprawiony. Szczegóły poprawki dostępne są w referencjach producenta (commit ee4017379db0059566ecb5424274ad4e2d66bc68 w repozytorium GitHub).
Sequelize w wersjach przed 3.35.1, wyłącznie przy użyciu dialektu PostgreSQL.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSequelizejs Sequelize
APPSequelizejs< 3.35.1
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 Sequelize przez funkcję pomocniczą sequelize.json()