OneUptime — это решение для мониторинга и управления онлайн-сервисами. До версии 10.0.18 OneUptime позволял участникам проекта запускать собственный код Playwright/JavaScript через Synthetic Monitors для тестирования веб-сайтов. Однако система выполняет этот ненадежный пользовательский код внутри небезопасного модуля Node.js vm.
Используя стандартный выход из цепочки прототипов (this.constructor.constructor), злоумышленник может обойти «песочницу», получить доступ к базовому объекту процесса Node.js и выполнить произвольные системные команды (RCE) в контейнере oneuptime-probe. Более того, поскольку зонд хранит учетные данные базы данных/кластера в переменных среды, это напрямую приводит к полной компрометации кластера. Эта уязвимость исправлена в версии 10.0.18.
Показать оригинальное описание (EN)
OneUptime is a solution for monitoring and managing online services. Prior to 10.0.18, OneUptime allows project members to run custom Playwright/JavaScript code via Synthetic Monitors to test websites. However, the system executes this untrusted user code inside the insecure Node.js vm module. By leveraging a standard prototype-chain escape (this.constructor.constructor), an attacker can bypass the sandbox, gain access to the underlying Node.js process object, and execute arbitrary system commands (RCE) on the oneuptime-probe container. Furthermore, because the probe holds database/cluster credentials in its environment variables, this directly leads to a complete cluster compromise. This vulnerability is fixed in 10.0.18.
Характеристики атаки
Последствия
Строка CVSS v3.1