CVE-2026-73294
moderateOS Command Injection in Semaphore UI Enables Authenticated RCE on Server Host
CVE-2026-73294 is a critical (CVSS 9.9) OS command injection (CWE-78/CWE-88) in the open-source Semaphore (semaphoreui) automation/CI server, caused by attacker-controlled repository git_url values being passed to exec.Command("git", ...) unvalidated and without a '--' argument separator, so a crafted URL injects git options such as --upload-pack. Any user holding the standard Manager or Owner role on any project can set such a git_url, and the injected command fires when a project schedule's commit-hash poller runs git ls-remote inside the main server process — reproducible on a default install with no non-default configuration. Because execution happens in the server process rather than in jobs, remote-runner isolation is bypassed and the attacker gains arbitrary code execution on the Semaphore server host with access to the master encryption key and every project's stored secrets (C:H/I:H/A:H, scope changed). All deployments of the affected server are exposed to any project collaborator with these roles; the practical blast radius depends on who can reach the API to edit repositories and schedules. Exploitation status: no public PoC is known, it is not in CISA KEV, and EPSS is low (~0.4% probability of exploitation in 30 days), indicating no known exploitation at this time.
What to do: Audit repositories and schedules for git_url values set by project collaborators and remove or correct any values beginning with '-' (option-injection payloads), and restrict Manager/Owner roles to trusted users until patched. Upgrade to the vendor's patched release when one is announced (no fixed version is specified in the available data); deployments whose configuration allows selecting a non-default git client can move off the vulnerable 'cmd_git' path as an interim mitigation. Check server logs for unexpected 'git ls-remote' invocations with --upload-pack arguments or suspicious child processes spawned by the Semaphore server process.
| semaphoreui (open-source Semaphore project) Semaphore UI / Semaphore server (Go) | — |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Semaphore UI is a web interface for managing DevOps tools. Prior to 2.18.17 and 2.19.5-beta2, repository git_url handling passes an attacker-controlled --upload-pack option to CmdGitClient.GetLastRemoteCommitHash through POST /api/project/{id}/repositories and scheduled commit-hash polling, allowing a project Manager or Owner to execute arbitrary OS commands in the Semaphore server process. This issue is fixed in versions 2.18.17 and 2.19.5-beta2.
- Ecosystems
- go
- Weakness
- CWE-78, CWE-88
- Vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
- GHSA
- GHSA-xp7j-h7jc-4w8p (critical)
In the news0 stories
No ingested article mentions this CVE yet.