Parse Server — это серверная часть с открытым исходным кодом, которую можно развернуть в любой инфраструктуре, поддерживающей Node.js. До версий 9.5.2-alpha.7 и 8.6.20 внутренние таблицы Parse Server, в которых хранятся сопоставления полей отношений, такие как членство в ролях, могут быть доступны напрямую через REST API или GraphQL API любым клиентом, использующим только ключ приложения. Никакого главного ключа не требуется.
Злоумышленник может создавать, читать, обновлять или удалять записи в любой таблице внутренних связей. Использование этого позволяет злоумышленнику внедриться в любую роль синтаксического анализа, получив все разрешения, связанные с этой ролью, включая полный доступ на чтение, запись и удаление к классам, защищенным разрешениями на уровне класса (CLP) на основе ролей. Аналогично, запись в любую такую таблицу, которая поддерживает поле Relation, используемое в CLP pointerFields, обходит этот контроль доступа.
Эта уязвимость исправлена в версиях 9.5.2-alpha.7 и 8.6.20.
Показать оригинальное описание (EN)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.5.2-alpha.7 and 8.6.20, Parse Server's internal tables, which store Relation field mappings such as role memberships, can be directly accessed via the REST API or GraphQL API by any client using only the application key. No master key is required. An attacker can create, read, update, or delete records in any internal relationship table. Exploiting this allows the attacker to inject themselves into any Parse Role, gaining all permissions associated with that role, including full read, write, and delete access to classes protected by role-based Class-Level Permissions (CLP). Similarly, writing to any such table that backs a Relation field used in a pointerFields CLP bypasses that access control. This vulnerability is fixed in 9.5.2-alpha.7 and 8.6.20.
Характеристики атаки
Последствия
Строка CVSS v3.1