CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-42350

CVE-2026-42350: Client-Side Open Redirect in Kargo UI OIDC Authentication Flow

Alon Barad
Alon Barad
Software Engineer

Aug 27, 2026·6 min read·14 visits

Executive Summary (TL;DR)

Kargo UI allowed client-side open redirects via unvalidated query parameters after OIDC login or token renewal, enabling phishing attacks. The issue is fixed in versions 1.7.10, 1.8.13, 1.9.8, and 1.10.2.

A client-side open redirect vulnerability has been identified in the Kargo user interface. The flaw resides in the handling of OpenID Connect (OIDC) login and token renewal flows, where the application extracts an unvalidated destination path from the redirectTo query parameter. Attackers can exploit this to redirect authenticated users to arbitrary external domains.

Vulnerability Overview

Kargo is an open-source tool developed by Akuity that automates application promotion across environments. The vulnerability resides entirely within the frontend client-side user interface (UI) components responsible for managing user sessions and authentication via OpenID Connect (OIDC). Specifically, the vulnerability affects the login page, OIDC login redirection page, and token renewal components.

The attack surface is exposed via the redirectTo query parameter, which is designed to preserve the user's destination path prior to authenticating. Because the application processes this parameter without validation, attackers can manipulate the navigation target to point to external, malicious domains. This allows adversaries to construct deceptive links that leverage the trust of the legitimate Kargo deployment domain.

When an unauthenticated user accesses the manipulated link and successfully authenticates, the client-side router or browser navigation API automatically redirects the user's browser session. The primary risk of this behavior is phishing, where attackers redirect users to a cloned authentication interface to capture credentials or tokens. The vulnerability is tracked as CVE-2026-42350 with a Medium severity rating.

Root Cause Analysis

The root cause of CVE-2026-42350 is the absence of origin validation on the redirectTo query parameter before invoking client-side navigation. The Kargo UI uses React Router's navigate function and native browser APIs like window.location.replace() to execute redirections. These APIs accept destination paths as strings and resolve them relative to the current origin or as absolute URLs.

Under the WHATWG URL specification, certain path structures are normalized into absolute URLs, even if they initially appear to be relative paths. For instance, a protocol-relative path starting with two forward slashes (e.g., //attacker.com) is interpreted as an absolute URL targeting https://attacker.com. This behavior allows attackers to bypass naive checks that only verify the absence of an explicit protocol scheme like http:// or https://.

Furthermore, modern browsers normalize backslashes inside URL paths under specific conditions. A path starting with a forward slash followed by a backslash (e.g., /\attacker.com) normalizes to //attacker.com during parsing. Since the unpatched Kargo frontend simply extracted the redirectTo value and appended or passed it to navigation APIs, it failed to restrict the destination to the application's local origin.

Code Analysis

To understand the exact code-level flaw, we examine the vulnerable implementation in Kargo UI and the corresponding patch. In the vulnerable version, the component extracts the redirectTo parameter from URLSearchParams and immediately performs navigation without any validation checks.

In oidc-login.tsx, the application uses window.location.replace(window.location.origin + redirectTo) to handle the redirect. While prepending the origin is intended to sanitize the redirect, some browsers resolve origin + //attacker.com as an external URL if the concatenation results in a malformed path structure that the browser recovers by navigating to the absolute portion. In token-renew.tsx and login.tsx, the raw parameter is passed directly to React Router's navigate or <Navigate /> component, allowing absolute path escapes.

The patch introduces a dedicated validation helper named isSafeRedirectPath in ui/src/config/auth.ts. This function first checks if the path string is null or does not start with a forward slash. It then uses the browser's native URL constructor to resolve the path against window.location.origin and strictly compares the resulting origin to ensure they match.

// File: ui/src/config/auth.ts
export const isSafeRedirectPath = (path: string | null): path is string => {
  if (!path || !path.startsWith('/')) return false;
  try {
    return new URL(path, window.location.origin).origin === window.location.origin;
  } catch {
    return false;
  }
};

By validating that the parameter starts with a single / and resolves to the exact same origin, the patch prevents both protocol-relative and backslash-prefixed bypasses. The calling components in oidc-login.tsx, token-renew.tsx, and login.tsx were updated to run this check and fall back to the default home path if the validation fails.

Exploitation Methodology

Exploitation of CVE-2026-42350 requires the attacker to construct a malicious URL and deliver it to a target user who has access to the Kargo deployment. The attacker begins by identifying the base URL of the target's Kargo instance, such as https://kargo.target-organization.com.

The attacker then appends the vulnerable login path and the redirectTo query parameter containing a protocol-relative URL pointing to an attacker-controlled domain. A typical exploit string is: https://kargo.target-organization.com/login?redirectTo=//phishing-kargo.com/login.

When the victim clicks the link, they see the legitimate domain in their address bar, which establishes trust. The victim performs the standard authentication flow via the configured OIDC identity provider. Once the identity provider issues the token and redirects the user back to Kargo, the Kargo frontend processes the successful login.

The frontend then executes the navigation logic using the unvalidated redirectTo parameter. The browser resolves the protocol-relative string //phishing-kargo.com/login to https://phishing-kargo.com/login and redirects the user. At this stage, the attacker presents a cloned login page or a message requesting additional credentials, effectively capturing sensitive user input.

Impact Assessment

The impact of CVE-2026-42350 is primarily associated with credential theft and session hijacking via phishing campaigns. While the vulnerability does not directly permit remote code execution on the Kargo server or database modification, it compromises the overall security posture of the continuous delivery (CD) pipeline.

Since Kargo manages application promotions across sensitive production environments, Kargo administrators possess high-privilege credentials. If an administrator is successfully phished through an open redirect, the attacker could obtain OIDC session tokens, API keys, or Okta credentials. This can lead to unauthorized access to the Kargo control plane, allowing attackers to promote malicious container images or modify application configurations.

The CVSS 4.0 score is calculated as 5.1 (Medium), reflecting the requirement for user interaction and the low subsequent impact on confidentiality. The EPSS score indicates a low short-term exploitation probability of 0.24%. However, because open redirect vulnerabilities require minimal technical skill to exploit, security teams should treat the risk as significant within enterprise environments.

Remediation & Mitigation

The primary and recommended remediation for CVE-2026-42350 is upgrading the Kargo installation to a patched version. Maintainers have released fixes across multiple release lines to accommodate different deployment stages.

Organizations should identify their current Kargo version and upgrade according to the following schedule:

  • Upgrade 1.7.x deployments to version 1.7.10 or later.
  • Upgrade 1.8.x deployments to version 1.8.13 or later.
  • Upgrade 1.9.x deployments to version 1.9.8 or later.
  • Upgrade 1.10.x deployments to version 1.10.2 or later.

In environments where an immediate upgrade is not feasible, temporary mitigations can be applied at the ingress or reverse proxy layer. Web Application Firewalls (WAFs) or reverse proxies like Nginx can be configured with rules to block incoming requests containing external URLs or protocol-relative patterns in the redirectTo query parameter. Additionally, security awareness programs should instruct users to verify the address bar whenever they are redirected after logging into internal tools.

Official Patches

AkuityGHSA-g7gw-m874-7rmf Security Advisory

Fix Analysis (3)

Technical Appendix

CVSS Score
5.1/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N
EPSS Probability
0.24%
Top 85% most exploited

Affected Systems

Kargo UI OIDC authentication flowsKargo UI Token Renewal interfaceKargo UI Login interface

Affected Versions Detail

Product
Affected Versions
Fixed Version
Kargo
Akuity
< 1.7.101.7.10
Kargo
Akuity
>= 1.8.0-rc.1, < 1.8.131.8.13
Kargo
Akuity
>= 1.9.0-rc.1, < 1.9.81.9.8
Kargo
Akuity
>= 1.10.0-rc.1, < 1.10.21.10.2
AttributeDetail
CWE IDCWE-601
Attack VectorNetwork
CVSS v4.05.1 (Medium)
EPSS Score0.00239 (Percentile: 14.83%)
Exploit MaturityTheoretical / None
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1566.002Spearphishing Link
Initial Access
CWE-601
URL Redirection to Untrusted Site ('Open Redirect')

A web application accepts a user-controlled input that specifies a link to an external site, and uses that input in a redirect.

Vulnerability Timeline

Security fixes committed by maintainers
2026-04-22
GHSA advisory published and CVE registered
2026-05-08
NVD publishes analyzed record
2026-07-24

References & Sources

  • [1]GitHub Security Advisory GHSA-g7gw-m874-7rmf
  • [2]NVD - CVE-2026-42350
  • [3]CVE Record - CVE-2026-42350

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•2 minutes ago•CVE-2026-109619
9.2

CVE-2026-109619: Remote Code Execution in PHP Core via Stale Global State Memory Corruption (PHP2Shell)

CVE-2026-109619 (PHP2Shell) is a critical Use-After-Free vulnerability in the core PHP engine caused by improper global state cleanup during out-of-memory exception handling across persistent worker requests.

Alon Barad
Alon Barad
1 views•6 min read
•5 minutes ago•CVE-2026-113721
4.5

CVE-2026-113721: Unsafe Link Resolution in virtualenv File Generation

In Python virtualenv prior to version 21.14.9, activation script generators and configuration writers use Path.exists() before writing files. Because Path.exists() resolves symbolic links, it returns False for dangling symlinks. Consequently, virtualenv skips unlinking pre-planted symbolic links or hard links, writing data directly to target locations outside the intended virtual environment directory.

Amit Schendel
Amit Schendel
1 views•5 min read
•9 days ago•CVE-2026-87697
8.8

CVE-2026-87697: Untrusted Deserialization in .NET PresentationCore Clipboard Handling

A remote code execution vulnerability exists in Microsoft .NET due to untrusted data deserialization within the PresentationCore component. The flaw stems from implicit auto-conversion flags during clipboard data retrieval operations.

Alon Barad
Alon Barad
31 views•5 min read
•9 days ago•CVE-2026-70007
8.8

CVE-2026-70007: Out-of-Bounds Write Vulnerability in .NET Framework and WPF Subsystem

An out-of-bounds write vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio allows unauthenticated remote attackers to execute arbitrary code via crafted pixel-shader bytecode or auto-converted clipboard payloads.

Amit Schendel
Amit Schendel
19 views•6 min read
•10 days ago•CVE-2026-70186
7.5

CVE-2026-70186: ASP.NET Core Denial of Service Vulnerability via Framework Deadlock

ASP.NET Core contains a thread deadlock vulnerability (CWE-833) that allows an unauthenticated remote attacker to cause a denial of service over the network by exhausting server thread pool resources.

Amit Schendel
Amit Schendel
18 views•5 min read
•10 days ago•CVE-2026-70035
8.8

CVE-2026-70035: Insecure Deserialization Remote Code Execution in Microsoft .NET Framework and .NET Runtime

CVE-2026-70035 is a high-severity Remote Code Execution (RCE) vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio caused by improper handling during the deserialization of untrusted data (CWE-502). An unauthenticated attacker can execute arbitrary code within the context of the affected process by delivering a crafted serialized payload.

Amit Schendel
Amit Schendel
24 views•6 min read