Parse Server — это серверная часть с открытым исходным кодом, которую можно развернуть в любой инфраструктуре, поддерживающей Node.js. До версий 9.6.0-alpha.5 и 8.6.31 в адаптере хранилища PostgreSQL существовала уязвимость, связанная с внедрением SQL-кода, при обработке операций приращения над полями вложенных объектов с использованием точечной записи (например, stats.counter). Имя подраздела интерполируется непосредственно в строковые литералы SQL без экранирования.
Злоумышленник, который может отправлять запросы на запись в REST API сервера синтаксического анализа, может внедрить произвольный SQL-код через созданное имя подключа, содержащее одинарные кавычки, потенциально выполняя команды или считывая данные из базы данных, минуя CLP и ACL. Это касается только развертываний Postgres. Эта уязвимость исправлена в версиях 9.6.0-alpha.5 и 8.6.31.
Показать оригинальное описание (EN)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.6.0-alpha.5 and 8.6.31, 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 sub-key name is interpolated directly into SQL string literals without escaping. An attacker who can send write requests to the Parse Server REST API can inject arbitrary SQL via a crafted sub-key name containing single quotes, potentially executing commands or reading data from the database, bypassing CLPs and ACLs. Only Postgres deployments are affected. This vulnerability is fixed in 9.6.0-alpha.5 and 8.6.31.
Характеристики атаки
Последствия
Строка CVSS v4.0