Medium severity · published Sep 21, 2026
CVE-2026-91167
Warpgate: Missing authorization check on `PUT /users/:id/roles/:role_id` allows any admin to bypass the `AccessRolesAssign` permission boundary
6.0
CVSS
0.4%
EPSS
No
On KEV
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.
Exploitation
Is it being used?
Exploit prediction (EPSS)0.4% · higher than 35% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
WA
warpgate · warp-tech
< 0.28.4 · source: vendor
Affected product
WA
warpgate
warp-tech
More from warpgate
9.3
CVE-2026-58491
Warpgate: Reflected XSS in SSO return endpoint via attacker-controlled next parameter
7.7
CVE-2026-63330
Warpgate: Missing Admin Authorization on Live Recording Stream WebSocket Allows Any Authenticated User to Eavesdrop on Terminal Sessions
6.5
CVE-2026-44347
Warpgate: SSO CSRF -- State Token Not Validated on Return
5.7
CVE-2026-91166
Warpgate: Web SSH stores a jump host's key against the target's address, so it validates as the target
4.9
CVE-2026-63329
Warpgate: x-warpgate-username Header Not Stripped from Client Requests Enables Identity Spoofing to WebSocket Backend Targets