Semaphore UI: Manager-to-owner privilege escalation via custom-role slug collision
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Privilege escalation
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-269.
Summary
Semaphore UI is a web interface for managing DevOps tools. Prior to 2.18.19 and from 2.19.0-alpha3 until 2.19.5-beta5, ProjectMiddleware and GetProjectOrGlobalRoleBySlug allow a project manager to use POST /api/project/{id}/roles to create a custom manager role with permission bitmask 15, overriding the built-in manager permissions and granting CanUpdateProject and CanManageProjectUsers owner capabilities. This issue is fixed in versions 2.18.19 and 2.19.5-beta5.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| semaphoreui | semaphore | before 2.18.19; 2.19.0-alpha3 to before 2.19.5-beta5 | 2.18.19, 2.19.5-beta5 | Patch available | CNA |
| — | github.com/semaphoreui/semaphore (Go) | before 0.0.0-20260705182501-bb2a4e1f08c8 | 0.0.0-20260705182501-bb2a4e1f08c8 | Patch available | GHSA-cxvf-gvfq-36w2 |
- semaphore Vendorsemaphoreui Affected before 2.18.19; 2.19.0-alpha3 to before 2.19.5-beta5 Fixed in 2.18.19, 2.19.5-beta5 Patch available CNA
- github.com/semaphoreui/semaphore (Go) Vendor— Affected before 0.0.0-20260705182501-bb2a4e1f08c8 Fixed in 0.0.0-20260705182501-bb2a4e1f08c8 Patch available GHSA-cxvf-gvfq-36w2
Remediation
- Fix · CNA semaphore (semaphoreui) Fixed in 2.18.19, 2.19.5-beta5
- Fix · GHSA-cxvf-gvfq-36w2 github.com/semaphoreui/semaphore (Go) Fixed in 0.0.0-20260705182501-bb2a4e1f08c8 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-73293
- 2026-10-03 Alias added: GHSA-cxvf-gvfq-36w2
References
Other 6
- https://github.com/semaphoreui/semaphore/security/advisories/GHSA-cxvf-gvfq-36w2
- https://github.com/semaphoreui/semaphore/commit/1c4bb65df114962134f8829d4a03667106a01a68
- https://github.com/semaphoreui/semaphore/commit/bb2a4e1f08c8023e618f8dd6eaca73554f2c33bb
- https://github.com/semaphoreui/semaphore/releases/tag/v2.18.19
- https://github.com/semaphoreui/semaphore/releases/tag/v2.19.5-beta5
- https://github.com/semaphoreui/semaphore
More semaphoreui vulnerabilities
- TI-2026-51419 Semaphore U: OS Command Injection CVSS 3.1CRITICAL 9.9
- TI-2026-62124 Semaphore UI through 2.19.12 Missing Authorization on GET and HEAD Requests CVSS 4.0HIGH 7.1
- TI-2026-76499 Remote code execution in Semaphore UI via Ansible variable override CVSS 4.0HIGH 8.7
- TI-2026-51417 Semaphore UI: CSRF vulnerability on password change endpoint - No CSRF token or password confirmation CVSS 3.1HIGH 8.3
Sources
- CVE-2026-73293 · CVE Program
- CVE-2026-73293 · NVD
- FIRST EPSS
- GHSA-cxvf-gvfq-36w2 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences