Description
Warpgate is an open source SSH, HTTPS and MySQL bastion host for Linux. Prior to 0.28.4, PUT /@warpgate/admin/api/users/:id/roles/:role_id reaches api_update_user_role in warpgate-admin/src/api/users.rs through AdminContext but does not require AdminPermission::AccessRolesAssign. A limited administrator with any permission can update expires_at on an existing UserRoleAssignment and clear revoked_at, extending an expiring grant or reinstating a revoked grant. The endpoint cannot create a role assignment that never existed because it returns not found without a matching user and role pair. This issue is fixed in version 0.28.4.
Published: 2026-09-21
Score: 6 Medium
EPSS: n/a
KEV: No
Impact: Privilege Escalation via Missing Authorization Check
Action: Immediate Patch
AI Analysis

Impact

Warpgate is an open‑source bastion host that exposes an HTTP API for administrative tasks. A missing authorization check on the endpoint that updates a user’s role allows any administrator who can authenticate to the API to modify the expiration date and revocation status of an existing UserRoleAssignment. Because the endpoint accepts requests for any user–role pair that already exists, a limited admin with any permission can effectively revoke or re‑grant roles, extending privileges beyond the limits defined by the AccessRolesAssign permission. The flaw is a classic privilege escalation through authorization bypass, identified as CWE‑862.

Affected Systems

Applicable to the warp-tech Warpgate product, version numbers prior to 0.28.4 are affected. The vulnerability resides in the admin context handling of the endpoint PUT /@warpgate/admin/api/users/:id/roles/:role_id, which is invoked from warpgate-admin/src/api/users.rs. All installations of Warpgate that expose the admin API without applying the fix are potentially vulnerable. The issue is fixed in release v0.28.4 and later.

Risk and Exploitability

Although the CVSS base score is 6, indicating a medium risk, the vulnerability is exploitable by any authenticated administrator regardless of assigned permissions. The EPSS score is not available, but the lack of a restriction on the target user or role suggests that attack opportunities are likely if an attacker gains admin access to the API. The issue is not yet listed in the CISA KEV catalog. The typical attack vector is via the authenticated admin HTTP API; an attacker who can authenticate as an admin can send a crafted PUT request to extend an expiring grant or reinstate a revoked one.

Generated by OpenCVE AI on September 21, 2026 at 20:36 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Warpgate release 0.28.4 or later, which fixes the missing authorization check.
  • Enforce least‑privilege for all administrative accounts, revoking any over‑permissive rights that allow role changes without the AccessRolesAssign permission.
  • Audit existing UserRoleAssignments to identify any grants that have been unexpectedly extended or reinstated, and correct them if necessary.
  • Enable detailed audit logging for role modification endpoints to detect and respond to unauthorized changes.

Generated by OpenCVE AI on September 21, 2026 at 20:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 21 Sep 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Warp-tech
Warp-tech warpgate
Vendors & Products Warp-tech
Warp-tech warpgate

Mon, 21 Sep 2026 19:00:00 +0000

Type Values Removed Values Added
Description Warpgate is an open source SSH, HTTPS and MySQL bastion host for Linux. Prior to 0.28.4, PUT /@warpgate/admin/api/users/:id/roles/:role_id reaches api_update_user_role in warpgate-admin/src/api/users.rs through AdminContext but does not require AdminPermission::AccessRolesAssign. A limited administrator with any permission can update expires_at on an existing UserRoleAssignment and clear revoked_at, extending an expiring grant or reinstating a revoked grant. The endpoint cannot create a role assignment that never existed because it returns not found without a matching user and role pair. This issue is fixed in version 0.28.4.
Title Warpgate: Missing authorization check on `PUT /users/:id/roles/:role_id` allows any admin to bypass the `AccessRolesAssign` permission boundary
Weaknesses CWE-862
References
Metrics cvssV4_0

{'score': 6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Warp-tech Warpgate
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-21T18:54:38.214Z

Reserved: 2026-09-14T21:20:41.196Z

Link: CVE-2026-91167

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-21T19:17:15.550

Modified: 2026-09-21T19:17:15.550

Link: CVE-2026-91167

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-21T20:45:17Z

Weaknesses