Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed WebUI /login endpoint
-
DeliveryEnumerate valid usernames via verify_user timing
-
ExploitSubmit high-volume password guesses unthrottled
-
ExecutionBrute-force valid credentials
-
ImpactAuthenticate and take over account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Brute-force prevention, rate limiting
|
| Exploitation Conditions | Exploitation requires the AniWorld Downloader WebUI to be network-reachable by the attacker (the /login POST handler) on a version before 5.3.0, where no login throttling or account lockout exists. Two concrete conditions enable the full attack: (1) the timing side-channel in verify_user, which hashed only when a user record existed, allowing username enumeration; (2) the absence of any per-IP or per-user failure cap, allowing unlimited password guesses. LIMITING FACTORS: the WebUI must actually be exposed to the attacker (a local-only or firewalled instance is not reachable), and successful takeover still depends on a guessable/weak password - strong unique credentials blunt the brute-force. The post-fix mitigation also notes that without a configured ANIWORLD_WEB_TRUSTED_PROXY, IP-based counting degrades behind a reverse proxy, but that concerns the fix, not the prerequisite to exploit the unpatched version. |
| Impact | This is a genuine but moderate-severity weakness, not a critical priority. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N) scores 6.9 (Medium) and is internally consistent with the description: a network-reachable, unauthenticated, low-complexity flaw with low confidentiality and low integrity impact and no availability impact. The CWE-307 (improper restriction of authentication attempts) classification matches the root cause - the pre-fix /login handler performed no rate limiting, and verify_user hashed only for existing users, leaking username validity through response timing. No EPSS score, CISA KEV listing, or confirmed public exploit code is present in the input, so there is no signal of active or widespread exploitation; a third-party write-up (hackmd.io) and a VulnCheck advisory document the technique but do not themselves constitute a weaponized exploit. The real-world risk is sharply gated by exposure and password strength: impact only materializes on WebUI instances that are reachable by the attacker AND protected by guessable credentials. The signals are not conflicting, but note the vendor scored impact as Low/Low rather than High despite the outcome being account takeover - appropriate here because success still depends on the victim's password quality, not on the flaw alone. |
| Exploit ScenarioDerived | An attacker who can reach an exposed AniWorld Downloader WebUI sends repeated POST requests to /login, using the timing difference in verify_user responses to confirm valid usernames, then brute-forces passwords without any throttling or lockout. Because there is no rate limit in versions before 5.3.0, a weak or default admin password can be guessed and the account taken over. No public exploit is identified in the input, though a technical write-up describing the method exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
AniWorld Downloader versions before 5.3.0 ship a WebUI whose /login POST handler permits unlimited, unthrottled password guessing and leaks which usernames exist, letting unauthenticated remote attackers enumerate accounts and brute-force credentials on any instance whose web interface is reachable. The exposure is a compound weakness rather than a single primitive: verify_user in the web database layer only performed a password hash comparison when a matching user row existed, so the differing response time distinguished valid from invalid usernames, while the absence of any per-IP or per-account failure cap allowed unlimited attempts against the confirmed names. This is a genuine but moderate-severity weakness, not a critical priority - exploitation still requires the WebUI to be network-exposed (a local-only or firewalled deployment is not reachable) and successful takeover still depends on a guessable or weak password, so strong unique credentials blunt the attack. No confirmed active exploitation (CISA KEV) and no public exploit identified at time of analysis; the underlying issue and its fix are documented in the upstream issue tracker and a public technical write-up, and the vendor patched the flaw in v5.3.0.
RemediationAI
Vendor-released patch: upgrade to AniWorld Downloader 5.3.0 (release tag v.5.3.0, fixing commit 3c070bd10665377308a3092e11933681c18a5fd1), which adds per-IP and per-username login throttling, normalized hashing to remove the username-enumeration timing oracle, and trusted-proxy support. If an immediate upgrade is not possible, the highest-value compensating control is reducing reachability: do not publish the WebUI port to untrusted networks, bind it to localhost or a management network/VPN, and restrict /login with a firewall or reverse-proxy access list - the trade-off is loss of remote administrative convenience for legitimate users. Enforce strong, unique WebUI credentials regardless, since the brute-force only succeeds against weak passwords and account lockout was absent pre-5.3.0. After upgrading, operators running the WebUI behind a reverse proxy must set ANIWORLD_WEB_TRUSTED_PROXY to the proxy's IP address so the throttle counts the real client IP; setting it to "*" trusts any source and is only safe when the container port is not published and the app is reachable exclusively through the proxy, otherwise an attacker could spoof X-Forwarded-For and evade per-IP limits. Note the throttle is in-memory and resets on application restart, so it is a deterrent rather than a hard boundary. Enable the WebUI CAPTCHA hooks where practical as an additional layer, and review logs for "Failed login" and "Login locked out" entries to detect prior guessing attempts. Additional details are in the vendor advisory at https://www.vulncheck.com/advisories/aniworld-downloader-before-5.3.0-webui-login-brute-force-via-login and the upstream issue at https://github.com/phoenixthrush/AniWorld-Downloader/issues/334.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is classified CWE-307 (Improper Restriction of Excessive Authentication Attempts) and lives in the Python/Flask WebUI of AniWorld Downloader, served in production by the Waitress WSGI server. The root cause is twofold. First, a timing side-channel: db.verify_user short-circuited to None when no user row matched the supplied username, skipping Werkzeug's check_password_hash entirely, so unknown usernames returned measurably faster than known ones and could be enumerated remotely. Second, the login() view in src/aniworld/web/auth.py had no failure accounting whatsoever - no per-IP or per-username counter, no lockout, no delay - so once a username was known, the attacker could submit unlimited password candidates with no throttling or 429 response. The upstream fix commit 3c070bd introduces src/aniworld/web/throttle.py, an in-memory LoginThrottle using a 15-minute sliding window with a 10-failure cap per client IP and a 5-failure cap per username, returning HTTP 429 with a Retry-After header and logging lockouts; it also adds functools.cache-decorated _dummy_password_hash() so the unknown-user branch performs an equivalent hash computation and timing is normalized. Because the throttle keys on request.remote_addr, the same commit adds ANIWORLD_WEB_TRUSTED_PROXY handling so Waitress will accept X-Forwarded-For only from a trusted proxy and strip it from untrusted clients, preventing both IP spoofing of the throttle key and the collapse of all clients onto the reverse proxy's address. CVSS 4.0 scores this 6.9 (AV:N/AC:L/AT:N/PR:N/UI:N, low confidentiality and integrity impact); our independent CVSS 3.1 assessment concurs at AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N, with low confidentiality and integrity impact and no availability impact.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Remote unauthenticated brute force over the network (AV:N/AC:L/PR:N/UI:N); username enumeration gives low confidentiality and account takeover low integrity, with no availability impact.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
1DescriptionCVE.org
AniWorld Downloader before 5.3.0 contains an improper restriction of authentication attempts vulnerability in the WebUI /login POST handler that allows unauthenticated attackers to guess passwords without throttling. Attackers can enumerate usernames through verify_user response timing and brute-force passwords on exposed WebUI instances to take over accounts.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-96363
GHSA-cwhp-rxhr-43pp
NVD
CVE.org
EPSS
Exploit-DB