Description
Semaphore UI through 2.19.16 contains a remote code execution vulnerability that allows users with the task_runner role to override protected Ansible variables by supplying arbitrary keys in the task environment JSON. Attackers can POST tasks setting ansible_ssh_common_args with a ProxyCommand or ansible_connection=local to execute commands as the Semaphore server user, exposing encryption keys, SSH keys and stored secrets.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| semaphoreui | Semaphore UI | ≤ 2.19.16 | — |
References
- https://github.com/semaphoreui/semaphore/pull/3888 issue-tracking technical-description patch
- https://github.com/semaphoreui/semaphore/blob/v2.19.16/services/tasks/TaskRunner.go#L395-L431 technical-description
- https://github.com/semaphoreui/semaphore/blob/v2.19.16/api/projects/tasks.go#L39-L75 technical-description
- https://github.com/semaphoreui/semaphore product
- VulnCheck Advisory: Semaphore UI through 2.19.16 RCE via Task Environment Ansible Variable Override third-party-advisory