CVE-2022-3993
Executive Summary
CVE-2022-3993 is an Improper Restriction of Excessive Authentication Attempts vulnerability in the kareadita/kavita GitHub repository affecting versions prior to 0.6.0.3. The flaw permits unlimited authentication attempts against the login interface, enabling brute-force attacks without rate limiting or account lockout mechanisms. Enterprise deployments of Kavita self-hosted media servers are exposed to credential compromise, with a CVSS score of 9.4 indicating critical severity and high likelihood of successful exploitation in internet-facing instances.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability belongs to the authentication rate-limiting class defined by CWE-307. The NVD description states that the GitHub repository kareadita/kavita prior to 0.6.0.3 lacks controls to restrict repeated failed login attempts. No specific function names, endpoints, or code paths are provided in the CNA title or NVD description, so analysis remains at the vulnerability-class level. The absence of throttling on authentication requests allows an attacker to issue an arbitrary number of credential guesses against user accounts. This design omission directly violates the principle of enforcing exponential backoff or temporary lockouts after a threshold of failures.
Exploitation Scenarios
No public PoC available; attack chain is inferred from vulnerability class.
- Reconnaissance/target identification: An attacker scans for publicly reachable Kavita instances using Shodan or similar tools to locate exposed login pages.
- How the specific flaw class is triggered: The attacker submits repeated authentication requests to the login functionality without encountering any server-enforced limits on attempt frequency or volume.
- Payload/execution method at the vulnerability-class level: Automated credential stuffing or password-guessing tools are used to iterate through username/password combinations at high speed, as the missing restriction of excessive attempts permits continuous submission.
- Post-exploitation impact: Successful authentication yields valid session tokens, allowing the attacker to access protected media libraries and user data.
Impact Assessment
Successful exploitation grants unauthorized access to Kavita instances, potentially exposing personal media collections, user accounts, and any integrated storage. The CVSS score of 9.4 reflects network attack vector, low complexity, no privileges required, and high impact on confidentiality and integrity. Blast radius includes lateral movement if reused credentials exist elsewhere and data exfiltration from self-hosted libraries. Affected systems are primarily self-hosted Kavita servers reachable from the internet.
Detection Guidance
Sigma Rule
title: Kavita Excessive Authentication Attempts
id: 8f3e2c1a-4b5d-4e6f-9a2b-1c3d4e5f6a7b
status: experimental
description: Detects multiple failed login attempts to Kavita
logsource:
product: webserver
service: access
detection:
selection:
http.request.method: POST
http.request.uri|contains: "/api/account/login"
http.response.status: 401
timeframe: 5m
condition: selection | count() > 10
level: high
YARA Rule
rule Kavita_BruteForce_Attempt {
meta:
description = "Detects patterns consistent with brute force against Kavita"
strings:
$login = "/api/account/login"
$fail = "401"
condition:
$login and #fail > 50
}
Suricata IDS Rule
alert http any any -> $HOME_NET any (msg:"Kavita Excessive Auth Attempts"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"/api/account/login"; threshold:type both, track by_src, count 10, seconds 300; sid:20223993; rev:1;)
Elastic Detection
sequence by source.ip with maxspan=5m
[http_request where url.path == "/api/account/login" and http.response.status_code == 401] with runs=10
Splunk SPL Query
index=web sourcetype=access_combined uri="/api/account/login" status=401
| stats count by src_ip
| where count > 10
| eval time_window=relative_time(now(), "-5m")
Wazuh OSSEC Rule
<rule id="733285" level="10">
<if_sid>31101</if_sid>
<match>/api/account/login</match>
<match>401</match>
<description>Multiple failed Kavita login attempts detected</description>
<group>authentication_failures</group>
</rule>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).
- Immediate mitigations: Place a reverse proxy (e.g., Nginx or Cloudflare) in front of the Kavita instance and configure rate limiting on POST requests to authentication paths; enforce IP-based throttling and CAPTCHA on repeated failures.
- Patch/upgrade steps: Monitor the upstream kareadita/kavita repository for a release that implements proper authentication attempt restrictions; test and deploy any future version that addresses the flaw.
- Long-term hardening: Implement centralized authentication with an external identity provider that supports account lockout policies; disable direct internet exposure of the Kavita service when possible.
References
https://nvd.nist.gov/vuln/detail/CVE-2022-3993 https://github.com/kareadita/kavita https://cwe.mitre.org/data/definitions/307.html No CISA KEV entry; no known threat actor campaigns or confirmed exploit-in-the-wild evidence at time of reporting.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.