
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-33544 is an OAuth account confusion vulnerability in tinyauth caused by a race condition in shared mutable singleton state across concurrent OAuth login requests. All three OAuth service implementations (GenericOAuthService, GithubOAuthService, GoogleOAuthService) store PKCE verifiers and access tokens as mutable struct fields on singleton instances, allowing one user's token to overwrite another's during concurrent logins. The vulnerability affects tinyauth versions prior to 5.0.5 and was disclosed on April 1, 2026. It carries a CVSS v3.1 base score of 7.7 (High) (Github Advisory).
The root cause is CWE-362 (Race Condition): OAuthBrokerService.GetService() returns a single shared instance per OAuth provider for every incoming request, and the OAuth flow stores intermediate state — specifically the PKCE verifier and access token — as mutable struct fields on this singleton. In the callback handler (oauth_controller.go lines 136–143), service.VerifyCode(code) stores the exchanged token on the singleton, but a concurrent request's VerifyCode() can overwrite that field before GetUser() → Userinfo() reads it, causing the wrong user's identity claims to be returned. A secondary variant involves PKCE verifier overwrites during concurrent oauthURLHandler calls, causing the OAuth provider to reject the code exchange (denial-of-service). Go's race detector confirms 4 data races on the token and verifier fields, and without the detector, the token overwrite rate was measured at 99.9% (9,985/10,000 iterations) (Github Advisory, Security Advisory).
A successful exploit allows an attacker who times their OAuth callback to race with a victim's callback to obtain a tinyauth session bearing the victim's identity (email, name, group memberships), granting unauthorized access to all resources the victim is permitted to access through tinyauth's ACL system. Both confidentiality and integrity are highly impacted, as the attacker can read and act on behalf of the victim across all proxied applications. Additionally, the PKCE verifier overwrite variant causes concurrent OAuth logins for the same provider to reliably fail, resulting in a denial-of-service for legitimate users (Github Advisory).
service.VerifyCode(codeA), storing tokenA on the singleton. At t1, Request B (victim) calls service.VerifyCode(codeB), overwriting the singleton with tokenB. At t2, Request A calls broker.GetUser() → Userinfo(), which reads tokenB from the singleton./api/oauth/callback?provider=github) from different clients./error) during periods of concurrent logins, indicative of the PKCE verifier DoS variant (Security Advisory).Upgrade tinyauth to version 5.0.5 or later, which refactors the OAuth flow to eliminate shared mutable singleton state — PKCE verifiers and tokens are now passed through method parameters and stored in per-session cookies (tinyauth-oauth) rather than on the service struct (v5.0.5 Release, Patch Commit). No configuration-based workaround is available for the race condition; the only effective remediation is upgrading. The maintainer has flagged this release as a security fix requiring immediate update (Github Advisory).
The vulnerability was discovered and reported by researcher kq5y, credited in both the GitHub Security Advisory and the v5.0.5 release notes (v5.0.5 Release). The maintainer responded promptly, publishing the advisory and patched release on the same day (April 1, 2026) with a clear warning to update immediately. No broader media coverage or significant social media discussion has been identified beyond the GitHub advisory ecosystem.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."