marimo — это реактивный блокнот Python. До версии 0.23.0 в Marimo была уязвимость RCE перед аутентификацией. В конечной точке WebSocket терминала /terminal/ws отсутствует проверка подлинности, что позволяет злоумышленнику, не прошедшему проверку подлинности, получить полную оболочку PTY и выполнить произвольные системные команды.
В отличие от других конечных точек WebSocket (например, /ws), которые правильно вызывают validate_auth() для аутентификации, конечная точка /terminal/ws проверяет только рабочий режим и поддержку платформы перед принятием соединений, полностью пропуская проверку аутентификации. Эта уязвимость исправлена в версии 0.23.0.
Показать оригинальное описание (EN)
marimo is a reactive Python notebook. Prior to 0.23.0, Marimo has a Pre-Auth RCE vulnerability. The terminal WebSocket endpoint /terminal/ws lacks authentication validation, allowing an unauthenticated attacker to obtain a full PTY shell and execute arbitrary system commands. Unlike other WebSocket endpoints (e.g., /ws) that correctly call validate_auth() for authentication, the /terminal/ws endpoint only checks the running mode and platform support before accepting connections, completely skipping authentication verification. This vulnerability is fixed in 0.23.0.
Характеристики атаки
Последствия
Строка CVSS v4.0