Bug 2483248 (CVE-2026-49329) - CVE-2026-49329 openshift/oauth-server: openshift/oauth-server: Quadratic-time DoS via Accept-Language header underscore bypass on unauthenticated login endpoints
Summary: CVE-2026-49329 openshift/oauth-server: openshift/oauth-server: Quadratic-time...
Keywords:
Status: NEW
Alias: CVE-2026-49329
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-05-29 13:25 UTC by OSIDB Bzimport
Modified: 2026-09-01 14:10 UTC (History)
16 users (show)

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


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-05-29 13:25:07 UTC
The getPreferredLang() function in pkg/server/locales/locales.go passes the raw Accept-Language header into golang.org/x/text/language.ParseAcceptLanguage() without input validation. The upstream CVE-2022-32149 mitigation counts only '-' characters (capped at 1000) but the BCP 47 scanner aliases '_' to '-' internally after the guard check. A 1 MiB Accept-Language header using '_' separators bypasses the guard, triggering quadratic-time parsing (~1 second CPU per request on Apple M1 Pro). The affected endpoints (/login, /oauth/authorize/error) are unauthenticated. The OAuth route uses TLS passthrough (termination: passthrough), so the HAProxy ingress router operates at L4 and does not limit HTTP header sizes — Go's default MaxHeaderBytes of 1 MiB applies. Call sites: pkg/server/login/login.go:134, pkg/server/errorpage/errorpage.go:33,50,97. go.mod pins golang.org/x/text v0.29.0.


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