OliveTin предоставляет доступ к предопределенным командам оболочки из веб-интерфейса. В версиях до 3000.10.0 включительно проверка безопасности режима оболочки OliveTin («checkShellArgumentSafety») блокирует несколько опасных типов аргументов, но не «пароль». Пользователь, предоставляющий аргумент типа «пароль», может вводить метасимволы оболочки, которые выполняют произвольные команды ОС.
Второй независимый вектор позволяет выполнять RCE без аутентификации через значения JSON, извлеченные с помощью веб-перехватчика, которые полностью пропускают проверки безопасности типов перед достижением `sh -c`. При использовании вектора 1 любой прошедший проверку подлинности пользователь (регистрация включена по умолчанию, по умолчанию `authType: none`) может выполнять произвольные команды ОС на хосте OliveTin с разрешениями процесса OliveTin. При использовании вектора 2 неаутентифицированный злоумышленник может добиться того же, если экземпляр получает веб-перехватчики из внешних источников, что является основным вариантом использования OliveTin.
Когда злоумышленник использует оба вектора, это приводит к неаутентифицированному RCE на любом экземпляре OliveTin, использующем режим Shell с действиями, инициируемыми веб-перехватчиком. На момент публикации исправленная версия недоступна.
Показать оригинальное описание (EN)
OliveTin gives access to predefined shell commands from a web interface. In versions up to and including 3000.10.0, OliveTin's shell mode safety check (`checkShellArgumentSafety`) blocks several dangerous argument types but not `password`. A user supplying a `password`-typed argument can inject shell metacharacters that execute arbitrary OS commands. A second independent vector allows unauthenticated RCE via webhook-extracted JSON values that skip type safety checks entirely before reaching `sh -c`. When exploiting vector 1, any authenticated user (registration enabled by default, `authType: none` by default) can execute arbitrary OS commands on the OliveTin host with the permissions of the OliveTin process. When exploiting vector 2, an unauthenticated attacker can achieve the same if the instance receives webhooks from external sources, which is a primary OliveTin use case. When an attacker exploits both vectors, this results in unauthenticated RCE on any OliveTin instance using Shell mode with webhook-triggered actions. As of time of publication, a patched version is not available.
Характеристики атаки
Последствия
Строка CVSS v3.1