CVE-2026-91994: Semaphore UI authorization bypass in environment endpoint

CVE-2026-91994 · Severity: medium · CVSS 6.5 · Published 2026-09-15

Semaphore UI is a web interface for managing Ansible and infrastructure automation tasks. The application improperly exempts GET and HEAD requests from permission checks on project resources, allowing users with limited guest or task runner roles to retrieve sensitive environment data including plaintext credentials and passwords that should be restricted.

Quick answers

Is CVE-2026-91994 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-91994 being exploited in the wild.
How severe is CVE-2026-91994?
Medium severity, with a CVSS score of 6.5, published 15 September 2026.
Which products and versions are affected?
Semaphore UI Semaphore through 2.19.12.
Is there a fix for CVE-2026-91994?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-91994 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-91994?
Check whether anything you run is named in the advisory. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

The vulnerability is an authorization bypass in the GetMustCanMiddleware component that enforces project resource permissions. GET and HEAD HTTP requests are exempted from permission checks on the environment endpoint, allowing attackers with guest or task_runner roles to read all project environments via unauthenticated or low-privileged GET requests. The vulnerability exists through version 2.19.12 and exposes plaintext secrets and credentials stored in environment configurations. Authentication is required (attacker must have a guest or task_runner role), but the authorization check is completely bypassed for these HTTP methods.

Affected products

  • Semaphore UI Semaphore through 2.19.12

Timeline

  • 2026-09-15: disclosed

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.