Cyber Posture

CVE-2026-41059

High

Published: 22 April 2026

Published
22 April 2026
Modified
27 April 2026
KEV Added
Patch
CVSS Score 8.2 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
EPSS Score 0.0020 42.3th percentile
Risk Priority 17 60% EPSS · 20% KEV · 20% CVSS

Description

OAuth2 Proxy is a reverse proxy that provides authentication using OAuth2 providers. Versions 7.5.0 through 7.15.1 have a configuration-dependent authentication bypass. Deployments are affected when all of the following are true: Use of `skip_auth_routes` or the legacy `skip_auth_regex`; use of…

more

patterns that can be widened by attacker-controlled suffixes, such as `^/foo/.*/bar$` causing potential exposure of `/foo/secret`; and protected upstream applications that interpret `#` as a fragment delimiter or otherwise route the request to the protected base path. In deployments that rely on these settings, an unauthenticated attacker can send a crafted request containing a number sign in the path, including the browser-safe encoded form `%23`, so that OAuth2 Proxy matches a public allowlist rule while the backend serves a protected resource. Deployments that do not use these skip-auth options, or that only allow exact public paths with tightly scoped method and path rules, are not affected. A fix has been implemented in version 7.15.2 to normalize request paths more conservatively before skip-auth matching so fragment content does not influence allowlist decisions. Users who cannot upgrade immediately can reduce exposure by tightening or removing `skip_auth_routes` and `skip_auth_regex` rules, especially patterns that use broad wildcards across path segments. Recommended mitigations include replacing broad rules with exact, anchored public paths and explicit HTTP methods; rejecting requests whose path contains `%23` or `#` at the ingress, load balancer, or WAF level; and/or avoiding placing sensitive application paths behind broad `skip_auth_routes` rules.

Mitigating Controls (NIST 800-53 r5)AI

prevent

Defines and limits permitted actions without identification or authentication to exact, anchored public paths, preventing overly broad skip_auth_routes or skip_auth_regex configurations vulnerable to bypass via # or %23 suffixes.

prevent

Enforces restrictive configuration settings for OAuth2 Proxy components, such as tightening skip_auth rules to avoid patterns widened by attacker-controlled path fragments.

prevent

Validates and sanitizes incoming request paths at the proxy or ingress to reject those containing # or %23, blocking crafted requests that match public allowlists while accessing protected resources.

Security SummaryAI

OAuth2 Proxy, a reverse proxy for authentication using OAuth2 providers, contains a configuration-dependent authentication bypass vulnerability in versions 7.5.0 through 7.15.1, tracked as CVE-2026-41059 with a CVSS score of 8.2 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N) and mapped to CWE-288. The issue arises in deployments using `skip_auth_routes` or the legacy `skip_auth_regex` with patterns that can be widened by attacker-controlled suffixes, such as `^/foo/.*/bar$`, potentially exposing paths like `/foo/secret`. Protected upstream applications that interpret `#` as a fragment delimiter or route requests to the protected base path are particularly at risk. Deployments without these skip-auth options or with exact, tightly scoped public paths and methods are unaffected.

An unauthenticated attacker can exploit this by sending a crafted request with a number sign (`#`) in the path, including the browser-safe encoded form `%23`. This causes OAuth2 Proxy to match a public allowlist rule while the backend serves the protected resource, enabling unauthorized access to sensitive data with high confidentiality impact and low integrity impact.

The GitHub security advisory (GHSA-pxq7-h93f-9jrg) details a fix in version 7.15.2, which normalizes request paths more conservatively before skip-auth matching to prevent fragment content from influencing allowlist decisions. For immediate mitigation, users should tighten or remove `skip_auth_routes` and `skip_auth_regex` rules, favoring exact anchored public paths with explicit HTTP methods; reject requests containing `%23` or `#` at the ingress, load balancer, or WAF; and avoid placing sensitive paths behind broad skip-auth rules.

Details

CWE(s)

Affected Products

oauth2 proxy project
oauth2 proxy
7.5.0 — 7.15.2

MITRE ATT&CK Enterprise TechniquesAI

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
Why these techniques?

The vulnerability is an authentication bypass in a public-facing reverse proxy (OAuth2 Proxy), directly enabling exploitation of public-facing applications via crafted requests with '#' or '%23' to access protected resources.

Confidence: HIGH · MITRE ATT&CK Enterprise v19.0

References