Description
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.
References6
- github.com/semaphoreui/semaphore/commit/7e8a9434bd81b82cf422201…
- github.com/semaphoreui/semaphore/commit/a7a7a33a64aea382a0726b3…
- github.com/semaphoreui/semaphore/security/advisories/GHSA-xp7j-…
- github.com/semaphoreui/semaphore/tree/v2.18.17
- github.com/semaphoreui/semaphore/tree/v2.19.5-beta2
- github.com/semaphoreui/semaphore/security/advisories/GHSA-xp7j-…
Metrics
- CVSS 3.1
-
9.9
CRITICAL
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H - EPSS — exploit probability
- 1% percentile: 52 · as of 12 November 2026
- CWE
- CWE-78CWE-88
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.