Description
Tinyauth is an authentication and authorization server. Prior to 5.1.0, an unauthenticated remote attacker can send POST /api/user/login requests with 257 distinct nonexistent usernames to fill MaxLoginAttemptRecords and activate a global login lockdown. internal/controller/user_controller.go loginHandler passes each attacker-controlled identifier to internal/service/auth_service.go RecordLoginAttempt, which invokes lockdownMode after the map reaches its cap. IsAccountLocked checks that global state before validating unrelated accounts, causing valid users to receive HTTP 429 until auth.loginTimeout expires, approximately 300 seconds by default. The attack can be repeated, but existing authenticated sessions are not invalidated. This issue is fixed in version 5.1.0.
Published: 2026-09-21
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via global login lockdown
Action: Patch immediately
AI Analysis

Impact

The vulnerability permits an unauthenticated remote attacker to trigger a global login lockdown by submitting 257 distinct nonexistent usernames in POST \/api\/user\/login requests. Each request records a login attempt that contributes to an internal map; when the map reaches its cap the application enters lockdown mode. During lockdown all subsequent login attempts, including those from legitimate users, receive HTTP 429 responses for approximately 300 seconds. The attack does not compromise data confidentiality or invalidate existing sessions, but it does deny authentication services to all users. The likely attack vector is remote HTTP requests to /api/user/login, inferred from the description.

Affected Systems

All releases of tinyauth produced by tinyauthapp before version 5.1.0 are vulnerable. Versions 5.1.0 and later include the fix.

Risk and Exploitability

The CVSS score of 5.3 indicates a medium severity, while the EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog. Exploitation requires only repeated POST /api/user/login requests with distinct usernames, no authentication or privileged access is needed. The attacker can repeat the attack, but the impact window is limited to roughly five minutes per trigger. Overall, the risk is moderate; there is a clear exploitation path and a global denial effect, though the lack of EPSS data makes current exploitation probability uncertain.

Generated by OpenCVE AI on September 21, 2026 at 18:37 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade tinyauth to version 5.1.0 or later
  • Implement rate limiting or IP‑based throttling on the login endpoint to reduce repeated attempts
  • Configure monitoring of failed login attempts and alert on unusual patterns

Generated by OpenCVE AI on September 21, 2026 at 18:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-9xhm-w3wj-xhqh Tinyauth: Unauthenticated login attempts can trigger global login lockdown denial of service
History

Fri, 25 Sep 2026 00:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 21 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
First Time appeared Tinyauth
Tinyauth tinyauth
Vendors & Products Tinyauth
Tinyauth tinyauth

Mon, 21 Sep 2026 17:00:00 +0000

Type Values Removed Values Added
Description Tinyauth is an authentication and authorization server. Prior to 5.1.0, an unauthenticated remote attacker can send POST /api/user/login requests with 257 distinct nonexistent usernames to fill MaxLoginAttemptRecords and activate a global login lockdown. internal/controller/user_controller.go loginHandler passes each attacker-controlled identifier to internal/service/auth_service.go RecordLoginAttempt, which invokes lockdownMode after the map reaches its cap. IsAccountLocked checks that global state before validating unrelated accounts, causing valid users to receive HTTP 429 until auth.loginTimeout expires, approximately 300 seconds by default. The attack can be repeated, but existing authenticated sessions are not invalidated. This issue is fixed in version 5.1.0.
Title Tinyauth: Unauthenticated login attempts can trigger global login lockdown denial of service
Weaknesses CWE-307
References
Metrics cvssV3_1

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


Subscriptions

Tinyauth Tinyauth
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-24T22:23:12.221Z

Reserved: 2026-08-20T20:35:30.146Z

Link: CVE-2026-77561

cve-icon Vulnrichment

Updated: 2026-09-24T22:23:07.708Z

cve-icon NVD

Status : Deferred

Published: 2026-09-21T17:18:52.943

Modified: 2026-09-24T23:19:02.063

Link: CVE-2026-77561

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-21T19:00:08Z

Weaknesses
  • CWE-307

    Improper Restriction of Excessive Authentication Attempts