Executive brief
OliveTin is a web interface used to run pre-configured shell commands on a server. A security flaw allows attackers to bypass safety checks when custom input validation (regex) is used, leading to unauthorized command execution on the underlying operating system. This could allow an attacker to take full control of the server, access sensitive data, or disrupt operations.
Technical details
OliveTin's checkShellArgumentSafety() function fails to include 'regex:'-prefixed argument types in its blocklist of unsafe types for Shell mode actions. While typeSafetyCheckRegex() validates input against a pattern, it does not prevent shell metacharacters from being passed if the pattern allows them (e.g., POSIX command substitution like $()). The unvalidated value is interpolated directly into an 'sh -c' command string via Go's text/template without escaping. An attacker can exploit this to achieve remote code execution as the OliveTin process user. This is patched in version 3000.17.0 (commit 995ff79).
Affected products
- OliveTin OliveTin >= 0.0.0-20251025234746-ef5a67e7b8ea, < 0.0.0-20260708084548-995ff79736f2
Timeline
- 2026-07-08: patched: Initial patch commit and release 3000.17.0
- 2026-07-29: advisory: NVD publication
- 2026-07-30: disclosed: GitHub Advisory published