Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessProbe /login response times per username
-
DeliveryIdentify valid accounts via ~60ms KDF latency delta
-
ExploitLaunch credential-stuffing against enumerated accounts with no rate-limit friction
-
ExecutionAuthenticate as compromised user OR sustain high-volume flood of valid-username attempts
-
PersistSaturate Gunicorn synchronous worker pool
-
ImpactApplication-wide denial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Brute-force prevention, rate limiting
|
| Exploitation Conditions | Username enumeration requires no special conditions - the timing discrepancy is an inherent consequence of the pre-patch short-circuit logic and is measurable over any network path to /login without authentication. Brute-force and credential-stuffing require network access to /login and knowledge of at least one valid username (obtainable via the timing attack); no authentication, session, or application-level token is needed. The DoS path requires a sustained high-rate flood of login attempts targeting valid usernames; the synchronous Gunicorn worker model is a deployment characteristic rather than a configurable option, meaning this is a structural precondition present in all standard RansomLook deployments rather than an operator choice. A critical compounding condition: the nginx misconfiguration (X_FORWARDED_PROTO forwarded with underscores, silently dropped) meant the application could never derive a trustworthy client IP address, which would have made any IP-based rate-limiting control bypassable even if it had existed pre-patch. All three paths require PR:N - no authentication is needed to initiate exploitation. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) indicates fully remote, unauthenticated exploitation with no prerequisites, which aligns with the description - all three attack paths require only network reachability to the /login endpoint. The confidentiality impact (VC:L) reflects username enumeration rather than credential or data exposure, while the availability impact (VA:H) is credible given that Gunicorn synchronous workers are a well-understood finite resource: each login attempt against a valid account pins one worker for ~60ms, so a modest flood can saturate a typical worker pool. No EPSS score was supplied in the intelligence data, so probabilistic exploitation likelihood cannot be quantified. No CISA KEV listing and no public POC were identified, suggesting exploitation has not yet been observed at scale. However, the absence of any rate limiting or timing protection in the pre-patch code makes all three vectors trivially exploitable by any attacker who can reach the endpoint - no special tooling beyond a standard HTTP client is required. The compounding nginx misconfiguration means that the timing and brute-force weaknesses were not independently mitigable through standard WAF or proxy-layer controls prior to the fix, elevating practical risk beyond what raw CVSS might imply for a niche tool. |
| Exploit ScenarioDerived | An attacker sends rapid POST requests to the /login endpoint, varying the username field while holding the password constant, and measures HTTP response latencies: responses returning in under 10ms indicate nonexistent usernames while responses taking 50-80ms (the KDF cost) identify valid accounts. Armed with the enumerated account list, the attacker replays a credential-stuffing wordlist against valid usernames using a standard tool such as Hydra or ffuf; no throttling prevents unlimited attempts. Independently, the attacker floods /login with valid usernames at a high request rate, pinning all Gunicorn synchronous workers on KDF computations and rendering the entire RansomLook application unavailable to legitimate operators. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 24, 2026
Three compounding authentication weaknesses in RansomLook's /login endpoint allow an unauthenticated remote attacker to enumerate valid usernames via response-time differences, conduct unlimited brute-force or credential-stuffing attacks against discovered accounts, and exhaust the application's synchronous Gunicorn worker pool through a sustained login flood causing application-wide denial of service. All versions matching cpe:2.3:a:ransomlook:ransomlook:*:*:*:*:*:*:*:* are affected prior to the upstream fix commit. No public exploit code or CISA KEV listing has been identified at time of analysis; the CVSS 4.0 score of 8.8 is driven by the combination of confidentiality leakage (username enumeration) and high availability impact (worker exhaustion).
RemediationAI
Apply the upstream fix at commit 8602740347b0e928ad9fbaf5bc6ff242337dec6b (https://github.com/RansomLook/RansomLook/commit/8602740347b0e928ad9fbaf5bc6ff242337dec6b), which simultaneously addresses all three weaknesses: it introduces constant-time username verification using a pre-generated dummy hash, adds IP-keyed rate limiting via Valkey/Redis, and corrects the nginx proxy header to proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for. No independently confirmed fixed release tag exists beyond the commit hash - operators should pin to this commit or a downstream revision that includes it. If immediate patching is not feasible, restrict access to the /login endpoint to trusted IP ranges at the firewall or nginx level, which eliminates remote exploitation of all three vectors at the cost of removing remote administrative access. As an intermediate compensating control, deploying an external WAF or reverse-proxy rate limiter (e.g., nginx limit_req_zone) can throttle the brute-force and DoS vectors independently of the application, though this does not address the timing side-channel. Ensure that Valkey/Redis is operational before deploying the patched version, as the rate-limiting code explicitly fails open (returns False) when the cache is unreachable to avoid locking out all users during a cache outage - a deliberate availability-over-security trade-off documented in the patch comments.
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
RansomLook is an open-source Python/Flask ransomware group monitoring application (CPE: cpe:2.3:a:ransomlook:ransomlook:*:*:*:*:*:*:*:*) deployed behind nginx and served by Gunicorn in synchronous (blocking) worker mode. Password hashing is handled by Werkzeug's check_password_hash and generate_password_hash, which wrap a computationally expensive key-derivation function costing approximately 60ms per invocation. The root cause maps to CWE-307 (Improper Restriction of Excessive Authentication Attempts), but the vulnerability bundle encompasses two additional weaknesses: a timing side-channel (short-circuit on unknown usernames before KDF invocation) and an implicit resource exhaustion path through synchronous worker saturation. A compounding configuration error in the nginx reverse-proxy - forwarding the underscored X_FORWARDED_PROTO header (silently dropped by nginx) instead of the standard X-Forwarded-For - meant that even had rate limiting existed, the application would never have received a trustworthy client IP, making IP-keyed controls trivially bypassable. The fix introduces a static dummy password hash built at import time from a random secret (secrets.token_urlsafe(32)) so all login attempts incur the full KDF cost regardless of whether the username exists, adds IP-keyed rate limiting via Valkey/Redis (5 failures per 300-second window triggers a 3600-second block), and corrects the nginx configuration to append the real client address via proxy_add_x_forwarded_for with ProxyFix configured at x_for=1.
Know when Ransomlook gets its next vulnerability
- 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:N/VA:H/SC:N/SI:N/SA:N
Network-accessible with no auth (AV:N, PR:N); confidentiality limited to username enumeration (C:L); integrity unaffected; availability High due to synchronous Gunicorn worker exhaustion (A:H); scope unchanged as DoS is contained to the same application.
Primary rating from Vendor (CIRCL).
CVSS VectorVendor: CIRCL
DescriptionCVE.org
RansomLook contains multiple weaknesses in its authentication endpoint that allow an unauthenticated remote attacker to enumerate valid usernames, perform unrestricted password-guessing attacks, and potentially exhaust application worker resources.
For local authentication, the login implementation previously checked whether a submitted username existed before invoking the password hash verification function. Requests containing a nonexistent username therefore returned significantly faster than requests for valid accounts, for which the computationally expensive password verification routine was executed. A remote attacker could measure these response-time differences to determine which usernames correspond to valid RansomLook accounts.
In addition, the /login endpoint did not restrict the number or frequency of failed authentication attempts. An attacker could consequently perform password brute-force, dictionary, password-spraying, or credential-stuffing attacks against known accounts without server-side throttling. For valid usernames, each authentication attempt also invokes the password key-derivation function, which consumes a significant amount of CPU time. A sufficiently high rate of login attempts could therefore occupy the application's synchronous Gunicorn workers and cause a denial of service affecting the entire application.
The issue has been addressed by always performing password verification using a randomly generated dummy password hash when the supplied username does not exist, eliminating the username-dependent timing discrepancy. Failed authentication attempts are additionally rate-limited per client IP address using Valkey/Redis, with five failed attempts within five minutes resulting in a one-hour block. The reverse-proxy configuration was also updated so that the application derives the client address from a trusted X-Forwarded-For value that cannot be overridden by a client-supplied header.
Executive ViewAI
RansomLook deployments are vulnerable to CVE-2026-78551, a critical authentication flaw that allows unauthenticated attackers to enumerate valid user accounts and conduct credential-stuffing attacks, while simultaneously exhausting application resources to cause service-wide denial of service. The vulnerability exposes user credentials to brute-force attacks and creates risk of prolonged operational disruption. A vendor patch is available and should be deployed immediately across all RansomLook instances.
Apply vendor patch.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Ransomlook
View allSensitive credential disclosure in RansomLook (versions 0 through 2.0.0) exposes full API keys in the rendered HTML of t
Broken authorization in RansomLook's web-based configuration editor (the /admin/config endpoint) lets any authenticated
Unauthenticated private-data disclosure in RansomLook, an open-source ransomware-leak-site tracking platform, allows any
Missing authorization in RansomLook, an open-source ransomware-intelligence tracking platform, lets unauthenticated remo
Unauthenticated remote attackers can create crypto group entries in RansomLook by directly accessing the /admin/crypto/g
Stored XSS in RansomLook's cryptocurrency wallet detail view allows attacker-controlled JavaScript to execute in the sec
Sensitive scraping credentials and bypass logic were exposed to unauthenticated callers through multiple RansomLook API
RansomLook versions through 2.0.0 leaks victim posts belonging to privately configured ransomware groups and markets thr
Path traversal in RansomLook's GroupPost.get API handler allows an attacker controlling a malicious upstream instance to
PDF export in RansomLook allows authenticated analysts to read arbitrary server-side files and conduct server-side reque
Insecure file creation in RansomLook (≤ 2.0.0) exposes the Flask session-signing secret to any local OS user with read a
Redis glob pattern injection in Ransomlook versions up to and including 2.0.0 allows unauthenticated remote attackers to
EUVD-2026-65085
GHSA-vrw5-9j4x-chw5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB