Parse Server — это серверная часть с открытым исходным кодом, которую можно развернуть в любой инфраструктуре, поддерживающей Node.js. До версий 9.5.0-alpha.14 и 8.6.11 вредоносный клиент мог подписаться на LiveQuery с помощью созданного шаблона $regex, который вызывал катастрофический возврат и блокировал цикл событий Node.js. Это приводит к тому, что весь сервер синтаксического анализа перестает отвечать, что влияет на всех клиентов.
Это затрагивает любое развертывание сервера Parse с включенным LiveQuery. Злоумышленнику нужен только идентификатор приложения и ключ JavaScript, которые являются общедоступными в клиентских приложениях. Это влияет только на сопоставление подписки LiveQuery, которое оценивает регулярное выражение в JavaScript в цикле событий Node.js.
Обычные запросы REST и GraphQL не затрагиваются, поскольку их регулярное выражение оценивается ядром базы данных. Эта уязвимость исправлена в версиях 9.5.0-alpha.14 и 8.6.11.
Показать оригинальное описание (EN)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.5.0-alpha.14 and 8.6.11, a malicious client can subscribe to a LiveQuery with a crafted $regex pattern that causes catastrophic backtracking, blocking the Node.js event loop. This makes the entire Parse Server unresponsive, affecting all clients. Any Parse Server deployment with LiveQuery enabled is affected. The attacker only needs the application ID and JavaScript key, both of which are public in client-side apps. This only affects LiveQuery subscription matching, which evaluates regex in JavaScript on the Node.js event loop. Normal REST and GraphQL queries are not affected because their regex is evaluated by the database engine. This vulnerability is fixed in 9.5.0-alpha.14 and 8.6.11.
Характеристики атаки
Последствия
Строка CVSS v4.0