Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain or compromise project manager credentials
-
DeliveryAuthenticate to Semaphore UI REST API
-
ExploitPOST /api/project/{id}/roles with built-in slug and bitmask 15
-
ExecutionDatabase custom role shadows built-in manager in middleware lookup
-
PersistAcquire CanUpdateProject and CanManageProjectUsers owner capabilities
-
ImpactModify project settings or manage user membership as owner
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an active authenticated session holding the project manager role within the targeted Semaphore UI project - the CVSS PR:L vector confirms low-privilege authentication is the minimum entry bar. No special or non-default server configuration is required; the vulnerable code paths (ProjectMiddleware and GetProjectOrGlobalRoleBySlug) execute on all default deployments of affected versions whenever the roles API is used. The limiting factor is role-based: a guest or task_runner account cannot trigger this flaw without first being promoted to project manager. A fully external, unauthenticated attacker cannot exploit this without first compromising or obtaining valid project manager credentials. Exploitation is also scoped to individual projects - the attacker gains owner-level control only within projects where their manager account has membership, not across all projects on the instance. |
| Impact | The CVSS 8.8 rating (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) accurately represents the threat model: a single authenticated API call with no prerequisites beyond holding a project manager role is sufficient to escalate to owner-level. The attack succeeds against default-configured instances - no special features need to be enabled. No EPSS score was included in the provided intelligence, so exploitation probability cannot be quantified numerically; this is a notable data gap. The vulnerability is absent from CISA KEV, and no public proof-of-concept has been identified, which moderates the immediate opportunistic threat. However, the insider risk is high: any project manager who discovers the flaw can silently escalate without triggering obvious anomalies, since creating a custom role is a legitimate API function. The C:H/I:H/A:H impact ratings are justified by full project takeover - an escalated attacker can modify project settings, add or evict users, and potentially disrupt automation workflows. This is a real priority for organizations where Semaphore is internet-exposed or where project manager accounts are shared or weakly controlled. |
| Exploit ScenarioDerived | An attacker authenticated to a vulnerable Semaphore instance as a project manager sends a POST request to /api/project/{project_id}/roles with JSON body specifying slug='manager' and permissions=15. The unpatched ProjectMiddleware resolves this custom database role instead of the built-in manager definition, and the attacker's session is now treated as carrying CanUpdateProject and CanManageProjectUsers - capabilities reserved for project owners. The attacker can then modify project settings, add a second controlled account as project owner, or remove legitimate owners, achieving persistent elevated access within that project. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 12, 2026
Privilege escalation in Semaphore UI allows an authenticated project manager to gain owner-level project control by exploiting a role-shadowing flaw in the custom role creation API. Affected versions prior to 2.18.19 and between 2.19.0-alpha3 and 2.19.5-beta5 permit a project manager to POST a custom role with a slug matching a built-in role name and bitmask 15, causing the middleware to resolve the database-backed custom role instead of the protected built-in, thereby granting CanUpdateProject and CanManageProjectUsers capabilities reserved for owners. No public exploit code has been identified at time of analysis and this CVE is not listed in CISA KEV, but the low exploitation complexity (AC:L, single API call, no special configuration) and high CVSS impact (8.8) make upgrading urgent for any deployment with untrusted project managers.
RemediationAI
Upgrade to Semaphore UI v2.18.19 (stable) or v2.19.5-beta5 (pre-release), as confirmed by the release tags at https://github.com/semaphoreui/semaphore/releases/tag/v2.18.19 and https://github.com/semaphoreui/semaphore/releases/tag/v2.19.5-beta5. The patch is implemented across commits 1c4bb65df114962134f8829d4a03667106a01a68 and bb2a4e1f08c8023e618f8dd6eaca73554f2c33bb. If immediate upgrade is not feasible, restrict network access to the POST /api/project/{id}/roles endpoint at the reverse proxy or WAF layer to prevent project managers from creating new custom roles - note this will also block legitimate custom role creation. As a database-level compensating control, audit the role table for any rows whose slug matches built-in names (owner, manager, task_runner, guest) and delete or rename them; this removes already-created shadow roles but does not prevent new ones from being created on unpatched versions. Neither workaround substitutes for patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Semaphore UI is a Go-based web application (cpe:2.3:a:semaphoreui:semaphore:*:*:*:*:*:*:*:*) that provides a browser interface for Ansible, Terraform, and other DevOps automation tools. Its project role system defines built-in roles - owner, manager, task_runner, guest - with fixed permission bitmasks enforced in code. The vulnerability (CWE-269: Improper Privilege Management) existed in two locations: (1) ProjectMiddleware in api/projects/project.go, which called GetProjectOrGlobalRoleBySlug unconditionally for all role slugs, allowing a custom database role with a reserved slug to shadow the built-in; and (2) the SQL query in db/sql/role.go, which filtered roles by slug alone without scoping to project_id, making cross-project slug collision possible. The ValidateRole function in db/Role.go also lacked enforcement that built-in slugs are reserved, so the POST /api/project/{id}/roles endpoint accepted custom roles named 'manager' or 'owner'. The fix introduces a slug reservation check in ValidateRole, modifies ProjectMiddleware to skip DB lookup if the slug is already a recognized built-in, and scopes the SQL query to include project_id, eliminating the shadowing path at every layer.
Know when Semaphore gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-accessible API exploitable with only a project manager session (PR:L); no configuration prerequisite; full project owner takeover yields C:H/I:H/A:H against project resources.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Executive ViewAI
Semaphore UI versions before 2.18.19 and between 2.19.0-alpha3 and 2.19.5-beta5 contain a privilege escalation vulnerability (CVE-2026-73293, CVSS 8.8) that allows authenticated project managers to escalate to owner-level project control, gaining unauthorized access to sensitive projects and user management capabilities. No public exploit identified at time of analysis, though the attack requires only a single API call with minimal complexity, making it straightforward for any malicious project manager. Organizations with multiple administrators or untrusted project manager accounts face significant risk of project control being seized without detection.
Restrict project manager role assignments to only trusted, verified administrators; enforce multi-factor authentication for accounts holding project manager privileges; implement network-level rate limiting on the custom role creation API endpoint; enable comprehensive audit logging of role creation and permission changes; restrict API access to the custom role endpoint to whitelisted network ranges if feasible; conduct monthly audits of project manager role assignments.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Argument (git option) injection in Semaphore UI before 2.18.17 and 2.19.5-beta2 lets a project Manager or Owner achieve
Password takeover in Semaphore UI prior to version 2.18.21 enables an unauthenticated attacker to reset any authenticate
Semaphore UI through 2.19.12 fails to enforce project-level resource permissions on GET and HEAD requests in its GetMust
Remote code execution in Semaphore prior to version 2.18.20 allows authenticated project Managers and Owners to execute
Same weakness CWE-269 – Improper Privilege Management
View allSame technique Privilege Escalation
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-57317
GHSA-cxvf-gvfq-36w2
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB