Skip to main content

Warpgate CVE-2026-63329

| EUVDEUVD-2026-84060 MEDIUM
Improper Encoding or Escaping of Output (CWE-116)
2026-09-21 GitHub_M
4.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to Warpgate as low-priv user
  2. Delivery
    Add forged x-warpgate-username header to proxied request
  3. Exploit
    Warpgate forwards client value ahead of injected username
  4. Execution
    Backend reads first value and authorizes as victim
  5. Impact
    Access 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

warpgate < 0.25.6

Affected Packages

euvd warpgate fix: 0.25.6

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

Vendor (GitHub_M) PRIMARY 4.9 MEDIUM
AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 4.9 MEDIUM

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.

3.1 AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Sep 21, 2026 - 20:02 EUVD
CVE Published
Sep 21, 2026 - 18:49 cve.org
MEDIUM 4.9

DescriptionCVE.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

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Low
Niche open-source self-hosted SSH/HTTPS/MySQL bastion, limited production footprint
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

CVE-2026-58491 CRITICAL POC
9.3 Sep 21

Stored cross-site scripting and open redirect in Warpgate's SSO endpoints (versions prior to 0.25.5) allow an unauthenti

CVE-2024-43410 HIGH POC
7.5 Aug 21

Russh is a Rust SSH client & server library. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable,

CVE-2023-48712 HIGH
8.8 Nov 24

Warpgate is an open source SSH, HTTPS and MySQL bastion host for Linux. Rated high severity (CVSS 8.8), this vulnerabili

CVE-2023-37268 HIGH
8.8 Jul 14

Warpgate is an SSH, HTTPS and MySQL bastion host for Linux that doesn't need special client apps. Rated high severity (C

CVE-2023-43660 HIGH
8.1 Sep 27

Warpgate is a smart SSH, HTTPS and MySQL bastion host for Linux that doesn't need special client apps. Rated high severi

CVE-2026-63330 HIGH
7.7 Sep 21

Missing authorization checks on Warpgate's recording-stream WebSocket let any authenticated user with an ordinary accoun

CVE-2026-91167 MEDIUM
6.0 Sep 21

Missing authorization in Warpgate's admin API allows an authenticated limited administrator who holds any single admin p

CVE-2026-44347 MEDIUM
5.8 May 12

SSO login flow in Warpgate bastion host prior to 0.23.3 omits validation of the OAuth state parameter, enabling a cross-

CVE-2026-91166 MEDIUM
5.7 Sep 21

Host-key trust confusion in Warpgate's browser SSH client (warpgate-web-ssh) lets a malicious or compromised SSH jump ho

CVE-2026-91164 MEDIUM
4.3 Sep 21

IP allow-list enforcement in Warpgate 0.23.0 through 0.27.2 is bypassed for HTTP API token authentication: when a user h

CVE-2026-91165 LOW
2.4 Sep 21

Markup injection in Warpgate's form_post SSO return interstitial (warpgate-protocol-http/src/api/sso_provider_list.rs) a

CVE-2025-54804 MEDIUM POC
6.5 Aug 05

Russh is a Rust SSH client & server library. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitabl

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy