Skip to main content

Mytube EUVDEUVD-2026-16521

| CVE-2026-33935 HIGH
Improper Restriction of Excessive Authentication Attempts (CWE-307)
2026-03-27 GitHub_M
7.7
CVSS 4.0 · GitHub Advisory
Share

Severity by source

GitHub Advisory PRIMARY
7.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

6
Analysis Updated
Apr 16, 2026 - 06:12 EUVD-patch-fix
executive_summary
Re-analysis Queued
Apr 16, 2026 - 05:29 backfill_euvd_patch
patch_released
Patch available
Apr 16, 2026 - 05:29 EUVD
1.8.72
EUVD ID Assigned
Mar 27, 2026 - 01:15 euvd
EUVD-2026-16521
Analysis Generated
Mar 27, 2026 - 01:15 vuln.today
CVE Published
Mar 27, 2026 - 00:43 nvd
HIGH 7.7

DescriptionGitHub Advisory

MyTube is a self-hosted downloader and player for several video websites Prior to version 1.8.72, an unauthenticated attacker can lock out administrator and visitor accounts from password-based authentication by triggering failed login attempts. The application exposes three password verification endpoints, all of which are publicly accessible. All three endpoints share a single file-backed login attempt state stored in login-attempts.json. When any endpoint records a failed authentication attempt via recordFailedAttempt(), the shared login attempt state is updated, increasing the failedAttempts counter and adjusting the associated timestamps and cooldown values. Before verifying a password, each endpoint calls canAttemptLogin(). This function checks the shared JSON file to determine whether a cooldown period is active. If the cooldown has not expired, the request is rejected before the password is validated. Because the failed attempt counter and cooldown timer are globally shared, failed authentication attempts against any endpoint affect all other endpoints. An attacker can exploit this by repeatedly sending invalid authentication requests to any of these endpoints, incrementing the shared counter and waiting for the cooldown period between attempts. By doing so, the attacker can progressively increase the lockout duration until it reaches 24 hours, effectively preventing legitimate users from authenticating. Once the maximum lockout is reached, the attacker can maintain the denial of service indefinitely by waiting for the cooldown to expire and sending another failed attempt, which immediately triggers another 24-hour lockout if no successful login occurred in the meantime. Version 1.8.72 fixes the vulnerability.

AnalysisAI

MyTube prior to version 1.8.72 permits unauthenticated attackers to trigger indefinite account lockouts affecting both administrator and visitor authentication by exploiting a shared, globally-scoped login attempt counter across three publicly accessible password verification endpoints. An attacker can repeatedly send invalid authentication requests to any endpoint, progressively increasing a 24-hour cooldown lockout duration that applies to all endpoints simultaneously, effectively denying legitimate users password-based authentication until the patch is deployed. No public exploit code or active in-the-wild exploitation has been confirmed, but the attack requires no privileges and can be automated trivially.

Technical ContextAI

MyTube is a self-hosted video downloader and player application developed by franklioxygen. The vulnerability resides in the login attempt tracking mechanism, specifically the loginAttemptService.ts module, which maintains a file-backed state store (login-attempts.json) shared across three separate authentication endpoints. The root cause is classified under CWE-307 (Improper Restriction of Excessive Authentication Attempts), a well-known class in the OWASP authentication attack surface. The application's canAttemptLogin() function checks a global cooldown state before password validation occurs, and recordFailedAttempt() increments a shared counter regardless of which endpoint processed the request. This architecture creates a cross-endpoint timing and state-sharing vulnerability where the lockout mechanism intended to protect individual accounts is instead weaponized as a denial-of-service vector affecting all authentication paths simultaneously.

RemediationAI

Upgrade MyTube to version 1.8.72 or later, which introduces per-endpoint login attempt tracking to prevent cross-endpoint counter manipulation (see vendor advisory at https://github.com/franklioxygen/MyTube/security/advisories/GHSA-6w95-qgc4-5jxf and upstream commits at https://github.com/franklioxygen/MyTube/commit/4d89b146b16d08f27d8fd3e0a9122b109335deb1, https://github.com/franklioxygen/MyTube/commit/752bc7f0ac83df8c881e6b6d5dd6f36bb274ee58, https://github.com/franklioxygen/MyTube/commit/dd7b4a611fcc5b25a569f379be9a503eb413b6aa). Until patching is feasible, implement network-level access controls to restrict authentication endpoints to trusted IP ranges, deploy a reverse proxy with rate limiting on all three password verification endpoints (enforce per-IP request throttling), and monitor login-attempts.json for anomalous increases in the failedAttempts counter to detect active exploitation attempts.

Share

EUVD-2026-16521 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy