Bug 2483253 (CVE-2026-49332) - CVE-2026-49332 openshift/oauth-proxy: openshift/oauth-proxy: underscore header smuggling enables identity impersonation on WSGI/PHP upstreams
Summary: CVE-2026-49332 openshift/oauth-proxy: openshift/oauth-proxy: underscore heade...
Keywords:
Status: NEW
Alias: CVE-2026-49332
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-05-29 13:30 UTC by OSIDB Bzimport
Modified: 2026-07-28 12:12 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-05-29 13:30:03 UTC
openshift/oauth-proxy sets authenticated identity headers using dash-variant keys only (req.Header["X-Forwarded-User"] at oauthproxy.go:810,816) but does not strip underscore-variant keys (X_Forwarded_User) from client requests. Go's http.Header treats these as separate keys via textproto.CanonicalMIMEHeaderKey. WSGI frameworks (Django, Flask, FastAPI) and PHP normalize both to the same CGI variable (HTTP_X_FORWARDED_USER per PEP 3333), allowing a low-privilege authenticated attacker to inject X_Forwarded_User: admin which may override the proxy-set authenticated identity in the upstream application. The community oauth2-proxy fixed this in v7.13.0 (CVE-2025-64484, GHSA-vjrc-mh2v-45x6) with header normalization. This fix was never ported to openshift/oauth-proxy.


Note You need to log in before you can comment on or make changes to this bug.