Biblioteka Sequelize dla Node.js zawiera podatność umożliwiającą przeprowadzenie ataku SQL injection z powodu nieprawidłowego filtrowania atrybutów. Podatność otrzymała najwyższy możliwy wynik CVSS 10.0, co czyni ją zagrożeniem krytycznym dla wszystkich aplikacji korzystających z tej biblioteki.
▸ Pokaż oryginał (EN)
Due to improper artibute filtering in the sequalize js library, can a attacker peform SQL injections.
Biblioteka Sequelize nieprawidłowo filtruje atrybuty przekazywane do konstruowanych zapytań SQL. Atakujący, bez konieczności uwierzytelnienia, może dostarczyć spreparowane dane wejściowe, które zostaną wbudowane bezpośrednio w zapytanie do bazy danych. W wyniku tego możliwe jest manipulowanie logiką zapytań SQL w sposób niezamierzony przez twórców aplikacji.
Atakujący może uzyskać nieautoryzowany dostęp do danych w bazie danych, modyfikować lub usuwać dane, a w sprzyjających warunkach również wykonywać operacje systemowe na serwerze bazy danych. Pełny zakres ataku (poufność, integralność, dostępność) jest zagrożony zgodnie z wektorem CVSS.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (csirt.divd.nl/DIVD-2022-00020 oraz csirt.divd.nl/CVE-2023-22578). Rekomenduje się niezwłoczną aktualizację biblioteki Sequelize do wersji wolnej od podatności oraz weryfikację wszystkich miejsc w kodzie aplikacji, gdzie dane wejściowe użytkownika są przekazywane do zapytań ORM.
Biblioteka Sequelizejs Sequelize — wersje wskazane w referencjach producenta (csirt.divd.nl/DIVD-2022-00020)
Podatność została zgłoszona i obsłużona przez DIVD CSIRT w ramach sprawy DIVD-2022-00020. Data publikacji CVE: 2023-02-16.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HSequelizejs Sequelize
APPSequelizejs7.0.0< 6.29.0
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 sanityzacji kluczy JSON path (PostgreSQL)
SQL Injection w Sequelize przez nieprawidłowe eskejpowanie kluczy JSON path
SQL Injection w Sequelize przez funkcję pomocniczą sequelize.json()