Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Warpgate as low-priv user
-
DeliveryAdd forged x-warpgate-username header to proxied request
-
ExploitWarpgate forwards client value ahead of injected username
-
ExecutionBackend reads first value and authorizes as victim
-
ImpactAccess resources as impersonated identity
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding for downstream
|
| Exploitation Conditions | Requires two prerequisites: (1) the attacker holds a valid authenticated Warpgate session (PR:L), and (2) a backend proxied through Warpgate that trusts the reserved x-warpgate-username (or x-warpgate-authentication-type) identity header AND resolves duplicate/repeated headers by taking the FIRST value - Warpgate forwards the client-supplied value ahead of its own injected authenticated username. Limiting factors: no impact against backends that read the last header value, deduplicate reserved headers, or ignore these headers; only Warpgate versions prior to 0.25.6 are affected (0.25.6 adds may_forward_header() which strips any x-warpgate- prefixed and DONT_FORWARD headers). This is the AC:H condition - success depends on downstream header-parsing semantics outside the attacker's direct control. |
| Impact | This is a genuine but conditional access-control weakness, not a drive-by critical. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N = 4.9 Medium) aligns well with the mechanism: exploitation is network-borne but requires an already-authenticated Warpgate account (PR:L) AND a specific backend condition - the proxied backend must trust the FIRST of two repeated x-warpgate-username header values (AC:H). No EPSS score, no CISA KEV listing, and no public POC are present in the input, so all three exploitation-likelihood signals are absent rather than elevated. The scope change (S:C) is justified: the flaw in the Warpgate proxy causes an identity decision to be corrupted in a separate downstream backend. Impacts are limited (C:L/I:L/A:N) because the attacker gains another user's identity context rather than full data compromise or code execution. Net: real, defensible medium-severity identity-spoofing/broken-access-control issue that is meaningfully gated by backend trust behavior; not a widespread-exploitation priority absent evidence. |
| Exploit ScenarioDerived | An attacker with a valid low-privilege Warpgate account sends an HTTP request through the bastion carrying a forged x-warpgate-username (and/or x-warpgate-authentication-type) header. Because Warpgate forwards the client-supplied value before appending the real authenticated username, a backend that reads the first x-warpgate-username value authorizes the request as the impersonated user. No public exploit code is identified at time of analysis; exploitation depends on the downstream app's header-parsing behavior. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
Identity-header forwarding in the Warpgate SSH/HTTPS/MySQL bastion host prior to version 0.25.6 lets an authenticated user be authorized as a different user by proxied HTTP backends that trust the first occurrence of the reserved x-warpgate-username header. The flaw is conditional rather than a drive-by critical: it requires (1) a valid authenticated Warpgate session (PR:L) and (2) a downstream backend that both trusts Warpgate's reserved identity headers and resolves duplicate header values by taking the first, since Warpgate forwards the client-supplied value ahead of its own injected authenticated username; backends that read the last value, deduplicate, or ignore x-warpgate-* headers are unaffected. It is rated CVSS 4.9 (AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N), has no CISA KEV listing, and no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade Warpgate to version 0.25.6, which introduces the may_forward_header() check that strips any x-warpgate-* prefixed header as well as the existing deny-listed headers across the HTTP and Kubernetes proxy paths (see https://github.com/warp-tech/warpgate/releases/tag/v0.25.6 and commit c3748d7585209781b2d3a39ac9941b91d11d9b77); apply the vendor advisory guidance from GHSA-862h-v6cc-9757. If immediate upgrade is not possible, treat the mitigation as a downstream configuration problem, because the vulnerable behavior is Warpgate's failure to sanitize reserved headers rather than a feature that can be toggled off: configure each proxied backend to strip or overwrite inbound x-warpgate-username and x-warpgate-authentication-type headers at the edge (for example an nginx/Envoy/HAProxy rule that removes all x-warpgate-* request headers before they reach application code), and audit any backend authorization logic that reads these headers to ensure it takes the last duplicate value or rejects duplicates entirely - the trade-off is that legitimate Warpgate-injected identity headers to backends that depend on them will need to be re-injected from a trusted source or the backend authorization model reworked. Additionally, review logs and access records for proxied HTTP requests containing duplicate x-warpgate-username values or unexpected x-warpgate-authentication-type headers, since such duplicates are the observable signature of an impersonation attempt. Note that no public exploit code has been identified at time of analysis, but the prerequisite set (an authenticated low-privilege session plus a header-trusting backend) is common in shared bastion deployments, so upgrade should be prioritized where proxied applications consume Warpgate identity headers for authorization.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Warpgate is a Rust-based bastion host that proxies SSH, HTTPS and MySQL traffic; the HTTP proxy path lives in warpgate-protocol-http/src/proxy.rs, where copy_server_request copies client-supplied headers to the outbound request before inject_own_headers appends Warpgate's own authenticated identity headers. Because the underlying HTTP header map preserves repeated values rather than overwriting them, a client that sends its own x-warpgate-username (or the reserved x-warpgate-authentication-type) produces two values for the same header, with the client-controlled one placed first. The forwarding policy in warpgate-common/src/http_headers.rs was implemented as a deny-list (DONT_FORWARD_HEADERS) that simply omitted these reserved identity headers, so they were passed through untouched. Mapped to CWE-116 (Improper Encoding or Escaping of Output), the root cause is the failure to neutralize Warpgate's reserved outbound header namespace: attacker-controlled input is emitted in a channel (x-warpgate-* identity metadata) that downstream systems interpret as trusted, authenticated context. The fix refactors DONT_FORWARD_HEADERS from a public deny-list into a may_forward_header() predicate that rejects both deny-listed headers and any header whose name begins with the x-warpgate- prefix, effectively converting an incomplete blocklist into a prefix-scoped allow policy, and applies it consistently in the HTTP proxy (both request copying and response rewriting) and in warpgate-protocol-kubernetes/src/server/handlers.rs. The affected product set is captured by CPE cpe:2.3:a:warp-tech:warpgate:*:*:*:*:*:*:*:*, i.e. all Warpgate releases before 0.25.6.
Know when Warpgate 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:H/PR:L/UI:N/S:C/C:L/I:L/A:N
Authenticated Warpgate user (PR:L) exploits over the network, but success is gated on backend trusting the first repeated identity header (AC:H); the corrupted identity decision lands on a separate backend (S:C), yielding limited C:L/I:L.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Warpgate is an open source SSH, HTTPS and MySQL bastion host for Linux. Prior to 0.25.6, copy_server_request in warpgate-protocol-http/src/proxy.rs forwards a client-supplied x-warpgate-username header before inject_own_headers appends the authenticated username. Because the request builder preserves repeated values, a proxied backend that trusts the first x-warpgate-username value can authorize an authenticated attacker as another user. The same forwarding policy also accepts the reserved x-warpgate-authentication-type header, and warpgate-common/src/http_headers.rs does not exclude either reserved identity header. This issue is fixed in version 0.25.6.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Stored cross-site scripting and open redirect in Warpgate's SSO endpoints (versions prior to 0.25.5) allow an unauthenti
Russh is a Rust SSH client & server library. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable,
Warpgate is an open source SSH, HTTPS and MySQL bastion host for Linux. Rated high severity (CVSS 8.8), this vulnerabili
Warpgate is an SSH, HTTPS and MySQL bastion host for Linux that doesn't need special client apps. Rated high severity (C
Warpgate is a smart SSH, HTTPS and MySQL bastion host for Linux that doesn't need special client apps. Rated high severi
Missing authorization checks on Warpgate's recording-stream WebSocket let any authenticated user with an ordinary accoun
Missing authorization in Warpgate's admin API allows an authenticated limited administrator who holds any single admin p
SSO login flow in Warpgate bastion host prior to 0.23.3 omits validation of the OAuth state parameter, enabling a cross-
Host-key trust confusion in Warpgate's browser SSH client (warpgate-web-ssh) lets a malicious or compromised SSH jump ho
IP allow-list enforcement in Warpgate 0.23.0 through 0.27.2 is bypassed for HTTP API token authentication: when a user h
Markup injection in Warpgate's form_post SSO return interstitial (warpgate-protocol-http/src/api/sso_provider_list.rs) a
Russh is a Rust SSH client & server library. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitabl
EUVD-2026-84060
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB