CVE-2026-112212: GitLab CE/EE cache poisoning in OAuth/OIDC discovery endpoints
CVE-2026-112212 is a cache poisoning flaw in GitLab's OAuth and OpenID Connect discovery endpoints. An unauthenticated attacker could get a shared cache to store a discovery document whose endpoint URLs point at the attacker's server, redirecting some sign-in flows there. It affects self-managed GitLab CE/EE from 18.3; upgrade to 19.5.1, 19.4.3 or 19.3.6.
Published Oct 21, 2026 · Analysis Oct 22, 2026
What an attacker can do
GitLab acts as an OAuth 2.0 and OpenID Connect provider, and clients read its discovery document (the well-known openid-configuration) to learn where the authorization, token and userinfo endpoints are. GitLab says it built those endpoint URLs using values supplied in the request and trusted them. If a shared cache, such as a CDN or reverse proxy in front of GitLab, stores that response, every later client receives the poisoned document.
The result is that applications using GitLab for single sign-on may send users, or exchange codes and tokens, with a server the attacker controls. That can leak authorization codes, tokens or credentials. The vector reflects the preconditions: no account is needed, but the attack depends on a shared cache and on a user starting a sign-in flow. GitLab found this internally.
Who is affected
Self-managed GitLab CE/EE from 18.3 before 19.3.6, 19.4 before 19.4.3 and 19.5 before 19.5.1. Exposure is highest where a shared cache or CDN sits in front of GitLab and caches the discovery endpoints, and where other applications use GitLab as an OAuth or OIDC provider. Inspect the document clients receive:
curl -s https://gitlab.example.com/.well-known/openid-configuration | jq '.issuer, .authorization_endpoint, .token_endpoint'Every URL should point at your own GitLab host.
How to fix it
Upgrade to 19.5.1, 19.4.3 or 19.3.6. After upgrading, purge the cached discovery documents (/.well-known/openid-configuration and /.well-known/oauth-authorization-server) from any CDN or reverse proxy so a poisoned copy is not served from cache. Configuring the cache not to store these endpoints, or to key them on the full host, reduces the risk until you upgrade.
How to tell if you were hit
Check cached discovery responses for endpoint URLs that do not match your GitLab hostname, and proxy logs for discovery requests carrying unusual Host or forwarded headers. On the client side, look for OAuth flows that redirected users to unfamiliar domains and failed token exchanges. If a poisoned document was served, revoke and reissue OAuth application secrets and tokens issued during that window.
Original advisory
From the National Vulnerability Database. This product uses the NVD API but is not endorsed or certified by the NVD.
Under certain conditions, an unauthenticated user could have poisoned a shared cache's OAuth/OIDC discovery document to redirect certain flows to an externally controlled server, due to improper trust of user-supplied values when constructing endpoint URLs in cached discovery responses. Impacted versions: GitLab CE/EE all versions from 18.3 before 19.3.6, 19.4 before 19.4.3, and 19.5 before 19.5.1. Fixed in GitLab CE/EE 19.5.1, 19.4.3 and 19.3.6, released October 21, 2026.
Questions
- Is GitLab.com affected by CVE-2026-112212?
GitLab says GitLab.com already runs the patched version. Self-managed instances from 18.3 need to upgrade, especially if a shared cache or CDN sits in front of them.
- Does CVE-2026-112212 need an account?
No account is needed to poison the cache, but the attack only pays off when a user or application starts an OAuth or OpenID Connect flow that reads the poisoned discovery document.
References
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
Coverage on the Beam blog
More GitLab vulnerabilities
All GitLab entriesCVE-2026-103515
GitLab EE improper access control in group Duo admin-lock enforcement for Amazon Q settings
low2.7Oct 21, 2026CVE-2026-105711
GitLab CE/EE use of cache containing sensitive information in merge request title rendering
low3.5Oct 21, 2026CVE-2026-105777
GitLab CE/EE internal credential exposure in internal response headers
medium4.3Oct 21, 2026CVE-2026-110264
GitLab CE/EE integer overflow in regular expression compiler allows unauthenticated remote code execution
critical10.0Oct 21, 2026CVE-2026-112326
GitLab EE improper cleanup on thrown exception in security findings
low3.1Oct 21, 2026CVE-2026-112378
GitLab EE use of less trusted source in AI Gateway feature enablement header
medium4.3Oct 21, 2026
