Skip to main content

AniWorld Downloader EUVDEUVD-2026-96363

| CVE-2026-108580 MEDIUM
Improper Restriction of Excessive Authentication Attempts (CWE-307)
2026-10-10 disclosure@vulncheck.com GHSA-cwhp-rxhr-43pp
6.9
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed WebUI /login endpoint
  2. Delivery
    Enumerate valid usernames via verify_user timing
  3. Exploit
    Submit high-volume password guesses unthrottled
  4. Execution
    Brute-force valid credentials
  5. Impact
    Authenticate 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

AniWorld Downloader 0 <5.3.0

Affected Packages

euvd aniworld_downloader fix: 5.3.0

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

Vendor (vulncheck) PRIMARY 6.9 MEDIUM
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
vuln.today AI 6.5 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 10, 2026 - 17:02 EUVD

DescriptionCVE.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

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Rare
obscure open-source hobby anime-downloader tool, no enterprise footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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