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.
The first vector is that the security function `checkShellArgumentSafety` blocks many dangerous argument types but skips the `password` type — a user can therefore inject shell metacharacters in a `password`-type argument field, which are then passed to `sh -c` without sanitization. The second, independent vector allows an unauthenticated attacker to achieve RCE through webhook requests: JSON values extracted from the webhook go to `sh -c` entirely bypassing any type safety checks. Since OliveTin by default runs in `authType: none` mode with logging enabled, vector 1 is available to any authenticated user, and vector 2 to anyone who can send a webhook to the instance.
An attacker can execute arbitrary operating system commands with the privileges of the OliveTin process, which in practice means complete takeover of the host, data theft, malware installation, or lateral movement in the network.
At the time of vulnerability publication (2026-02-25), a patched version was not available. Monitor the vendor's repository at https://github.com/OliveTin/OliveTin/security/advisories/GHSA-49gm-hh7w-wfvf and apply the patch immediately upon release. Until the fix is released, it is recommended to: disable Shell mode, block access to webhook endpoints from external sources (firewall, network rules), enable strong authentication (change `authType` from the default `none` value), and restrict OliveTin process privileges to the minimum necessary.
OliveTin (OliveTin project) — all versions up to and including 3000.10.0, running in Shell mode with webhook-triggered actions enabled or with user registration enabled
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HOlivetin
APPOlivetin≤ 3000.10.0
Related vulnerabilities
OliveTin gives access to predefined shell commands from a web interface. In 3000.10.2 and earlier, OliveTin’s ...
OliveTin gives access to predefined shell commands from a web interface. Prior to 3000.11.2, when the saveLogs...
OliveTin gives access to predefined shell commands from a web interface. Prior to version 3000.11.1, when JWT ...
OliveTin gives access to predefined shell commands from a web interface. Prior to version 3000.10.2, the Passw...
OliveTin gives access to predefined shell commands from a web interface. Prior to version 3000.10.3, an unauth...