CVE-2026-33544

Tinyauth has OAuth account confusion via shared mutable state on singleton service instances

Published Apr 2, 2026 CVSS 3.1 · 7.7 High EPSS < 1% KEV · Not listed
Description
Tinyauth is an authentication and authorization server. Prior to version 5.0.5, all three OAuth service implementations (GenericOAuthService, GithubOAuthService, GoogleOAuthService) store PKCE verifiers and access tokens as mutable struct fields on singleton instances shared across all concurrent requests. When two users initiate OAuth login for the same provider concurrently, a race condition between VerifyCode() and Userinfo() causes one user to receive a session with the other user's identity. This issue has been patched in version 5.0.5.

Analysis

AI-generated

Technical impact

Tinyauth’s OAuth services keep PKCE verifiers and access tokens in mutable fields on singleton instances. When two users start an OAuth flow to the same provider at the same time, a competition between the VerifyCode() and Userinfo() functions can result in one user’s session pointing to the other user’s identity. This flaw allows one authenticated user to receive and use another user’s session, potentially granting access to data or actions that the attacker should not own. The weakness is classified as a race condition (CWE‑362).

Affected Systems

The affected component is the Tinyauth authentication server. All three OAuth service implementations—GenericOAuthService, GithubOAuthService, and GoogleOAuthService—are vulnerable in releases prior to version 5.0.5 of the application. The issue was addressed and fixed in the 5.0.5 release.

Risk and Exploitability

The CVSS score of 7.7 signals a high severity. The EPSS score of less than 1 % suggests exploitation is unlikely, and the vulnerability is not present in the CISA KEV catalog. Based on the description, it is inferred that an attacker can trigger the flaw remotely by initiating two OAuth login requests for the same provider at nearly the same time, without needing special privileges or additional configuration. The attack path is straightforward and only requires control over the OAuth endpoints used by legitimate users.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Tinyauth to version 5.0.5 or newer.

Generated by OpenCVE AI on April 7, 2026 at 20:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-9q5m-jfc4-wc92 Tinyauth has OAuth account confusion via shared mutable state on singleton service instances
History
Type Values Removed Values Added
First Time appeared Tinyauth
Tinyauth tinyauth
CPEs cpe:2.3:a:tinyauth:tinyauth:*:*:*:*:*:*:*:*
Vendors & Products Tinyauth
Tinyauth tinyauth
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Steveiliop56
Steveiliop56 tinyauth
Vendors & Products Steveiliop56
Steveiliop56 tinyauth
Type Values Removed Values Added
Description Tinyauth is an authentication and authorization server. Prior to version 5.0.5, all three OAuth service implementations (GenericOAuthService, GithubOAuthService, GoogleOAuthService) store PKCE verifiers and access tokens as mutable struct fields on singleton instances shared across all concurrent requests. When two users initiate OAuth login for the same provider concurrently, a race condition between VerifyCode() and Userinfo() causes one user to receive a session with the other user's identity. This issue has been patched in version 5.0.5.
Title Tinyauth has OAuth account confusion via shared mutable state on singleton service instances
Weaknesses CWE-362
References
Metrics cvssV3_1

{'score': 7.7, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N'}

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Apr 3, 2026, 6:23 PM
Reserved
Mar 20, 2026, 6:05 PM
Status
Analyzed
Published
Apr 2, 2026, 3:16 PM
Modified
Oct 26, 2026, 10:10 PM