Parse Server zawiera krytyczną podatność SQL injection w adapterze PostgreSQL, umożliwiającą nieuwierzytelnionemu atakującemu odczyt dowolnych danych z bazy danych. Luka jest szczególnie groźna, ponieważ pozwala ominąć mechanizmy kontroli dostępu CLP i ACL.
▸ Pokaż oryginał (EN)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. A SQL injection vulnerability exists in the PostgreSQL storage adapter when processing Increment operations on nested object fields using dot notation (e.g., stats.counter). The amount value is interpolated directly into the SQL query without parameterization or type validation. An attacker who can send write requests to the Parse Server REST API can inject arbitrary SQL subqueries to read any data from the database, bypassing CLPs and ACLs. MongoDB deployments are not affected. This vulnerability is fixed in 9.6.0-alpha.3 and 8.6.29.
Podatność występuje w adapterze bazy danych PostgreSQL podczas przetwarzania operacji Increment na zagnieżdżonych polach obiektów z użyciem notacji kropkowej (np. stats.counter). Wartość parametru 'amount' jest bezpośrednio wstawiana do zapytania SQL bez parametryzacji ani walidacji typów. Atakujący wysyłający żądania zapisu do REST API Parse Server może w ten sposób wstrzyknąć dowolne podzapytania SQL, które zostaną wykonane przez silnik bazy danych. Luka nie dotyczy instancji wykorzystujących MongoDB.
Atakujący bez żadnego uwierzytelnienia może odczytać dowolne dane zgromadzone w bazie danych PostgreSQL, w tym dane chronione przez reguły CLP (Class Level Permissions) i ACL (Access Control Lists). Skutkuje to całkowitym naruszeniem poufności przechowywanych danych.
Należy niezwłocznie zaktualizować Parse Server do wersji 8.6.29 (gałąź stabilna) lub 9.6.0-alpha.3 (gałąź alpha). Patche dostępne są w referencjach producenta na GitHub. Do czasu aktualizacji należy rozważyć ograniczenie dostępu do REST API Parse Server na poziomie sieciowym.
Parseplatform Parse Server we wszystkich wersjach przed 8.6.29 (gałąź 8.x) oraz przed 9.6.0-alpha.3 (gałąź 9.x) korzystających z adaptera PostgreSQL. Wdrożenia oparte na MongoDB nie są podatne.
Podatność dotyczy wyłącznie wdrożeń korzystających z adaptera PostgreSQL — instalacje z MongoDB nie są zagrożone. Poprawka została opublikowana w wersji 8.6.29 oraz 9.6.0-alpha.3.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XParseplatform Parse Server
APPParseplatform9.6.0< 8.6.299.0.0 – 9.6.0 (bez)
Powiązane podatności
Parse Server: obejście walidatorów Cloud Functions przez prototype chain
Race condition w Parse Server — błędna walidacja tokenów OAuth2
Parse Server — przejęcie konta przez manipulację zapytaniem (Auth Bypass)
SQL Injection w Parse Server (PostgreSQL) — operacje Increment na polach zagnieżdżonych
SQL Injection w Parse Server poprzez dot-notation i parametr sort (PostgreSQL)