CVE-2026-91994
MediumCVSS 6.5Exploitation Probability (EPSS)
Low risk33th percentile - higher than 33% of all known CVEs
Summary
Semaphore UI through 2.19.12 exempts GET and HEAD requests from project resource permission checks in GetMustCanMiddleware. Attackers with guest or task_runner roles can read all project environments including plaintext secrets, credentials, and passwords via GET requests to the environment endpoint.
Risk Assessment
Low-privileged users can access sensitive data such as passwords and credentials, potentially leading to privilege escalation and system compromise. The risk applies to all Semaphore UI instances version ≤2.19.12.
Recommendation
Upgrade Semaphore UI to a version later than 2.19.12 that fixes the permission checks. Until then, restrict guest and task_runner roles and monitor access to environment endpoints.
Other vulnerabilities in Semaphore UI
See all- CVE-2026-73294Critical
Semaphore UI before versions 2.18.17 and 2.19.5-beta2 improperly handles the git_url parameter in repositories, passing an attacker-controlled --upload-pack option to CmdGitClient.GetLastRemoteCommitHash. This allows a project Manager or Owner to execute arbitrary OS commands in the Semaphore server process.
- CVE-2026-73293High
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.
- CVE-2026-73292High
Semaphore UI before version 2.18.21 has a CSRF vulnerability in the /api/users/{id}/password endpoint, allowing an unauthenticated attacker to change an administrator's or another user's password after user interaction. No CSRF protection or current-password confirmation is present.
Original NVD description (English source)
Semaphore UI through 2.19.12 exempts GET and HEAD requests from project resource permission checks in GetMustCanMiddleware. Attackers with guest or task_runner roles can read all project environments including plaintext secrets, credentials, and passwords via GET requests to the environment endpoint.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

