{"answers":{"affected":"It affects 1 product.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-33935 exists.","fix":"No fix has been published for CVE-2026-33935 yet. Limit exposure of the affected software until one is available.","what":"CVE-2026-33935 is a high-severity denial of service vulnerability in franklioxygen MyTube, published on 27 Mar 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-33935 and fix it if it is affected.\n\nWhat it is: CVE-2026-33935 is a high-severity denial of service vulnerability in franklioxygen MyTube, published on 27 Mar 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-33935 exists.\n\nAffected product: franklioxygen MyTube. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-33935/ (Markdown: https://insights.sbomify.com/CVE-2026-33935/index.md)","id":"CVE-2026-33935","markdown":"https://insights.sbomify.com/CVE-2026-33935/index.md","name":"CVE-2026-33935","record":{"aliases":["GHSA-6w95-qgc4-5jxf"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["denial_of_service"],"network_reachable":"yes","non_default_config":false,"product_category":"Self-hosted video downloader","requires_auth":"none","summary":"Unauthenticated attackers can lock out all users by triggering failed logins on shared endpoints, causing indefinite denial of service.","user_interaction":"not_required","vuln_class":"denial_of_service"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"mytube","vendor":"franklioxygen"}],"cvss":{"score":7.7,"severity":"high","source":"cna","vector":"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","version":"4.0"},"cwes":[{"id":"CWE-307","name":"Improper Restriction of Excessive Authentication Attempts"}],"description":"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.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":false,"headline":"MyTube has Unauthenticated Account Lockout via Shared Login Attempt State","id":"CVE-2026-33935","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"denial_of_service","year":"2026"},"n_packages":0,"n_references":5,"next":{"headline":"python-ecdsa: Denial of Service via improper DER length validation in crafted private keys","id":"CVE-2026-33936"},"packages":[],"prev":{"headline":"OpenEMR's Missing Authorization in show-signature.php Allows Portal Patients to Read Staff Signatures","id":"CVE-2026-33934"},"products":["MyTube"],"published":"2026-03-27","related":[{"cvss_score":9.8,"headline":"MyTube has an Authorization Bypass vulnerability","id":"CVE-2026-23837","kev_date_added":null,"published":"2026-01-19"},{"cvss_score":8.9,"headline":"MyTube has an Unauthenticated Admin Privilege Escalation via Passkey Registration","id":"CVE-2026-33890","kev_date_added":null,"published":"2026-03-27"},{"cvss_score":8.7,"headline":"MyTube Allows Unauthorized Database Export by Guest Users","id":"CVE-2026-24139","kev_date_added":null,"published":"2026-01-23"},{"cvss_score":7.4,"headline":"MyTube has an Improper Access Control that Allows Complete Application Takeover","id":"CVE-2026-33735","kev_date_added":null,"published":"2026-03-27"},{"cvss_score":6.5,"headline":"MyTube has Rate Limiting Bypass via X-Forwarded-For Header Spoofing","id":"CVE-2026-23848","kev_date_added":null,"published":"2026-01-19"},{"cvss_score":2.7,"headline":"MyTube has Mass Assignment via Settings Management","id":"CVE-2026-24140","kev_date_added":null,"published":"2026-01-23"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-03-27","vendors":["franklioxygen"]},"summary":"Unauthenticated attackers can lock out all users by triggering failed logins on shared endpoints, causing indefinite denial of service.","url":"https://insights.sbomify.com/CVE-2026-33935/"}