Skip to main content

RansomLook CVE-2026-78551

| EUVDEUVD-2026-65085 HIGH
Improper Restriction of Excessive Authentication Attempts (CWE-307)
2026-08-24 CIRCL GHSA-vrw5-9j4x-chw5
8.8
CVSS 4.0 · Vendor: CIRCL
View

Attack ChainAIDerived

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

  1. Access
    Probe /login response times per username
  2. Delivery
    Identify valid accounts via ~60ms KDF latency delta
  3. Exploit
    Launch credential-stuffing against enumerated accounts with no rate-limit friction
  4. Execution
    Authenticate as compromised user OR sustain high-volume flood of valid-username attempts
  5. Persist
    Saturate Gunicorn synchronous worker pool
  6. Impact
    Application-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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

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

RansomLook 0 ≤2.0.0

Affected Packages

euvd ransomlook no fix

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

Vendor (CIRCL) PRIMARY 8.8 HIGH
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
vuln.today AI 8.2 HIGH

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.

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

Primary rating from Vendor (CIRCL).

CVSS VectorVendor: CIRCL

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

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 67% exploitable
Prevalence
Rare
niche open-source ransomware threat-intelligence monitoring tool
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-78555 CRITICAL
9.4 Aug 24

Sensitive credential disclosure in RansomLook (versions 0 through 2.0.0) exposes full API keys in the rendered HTML of t

CVE-2026-78387 CRITICAL
9.4 Aug 24

Broken authorization in RansomLook's web-based configuration editor (the /admin/config endpoint) lets any authenticated

CVE-2026-78370 CRITICAL
9.2 Aug 24

Unauthenticated private-data disclosure in RansomLook, an open-source ransomware-leak-site tracking platform, allows any

CVE-2026-78372 CRITICAL
9.2 Aug 24

Missing authorization in RansomLook, an open-source ransomware-intelligence tracking platform, lets unauthenticated remo

CVE-2026-78369 HIGH
8.8 Aug 24

Unauthenticated remote attackers can create crypto group entries in RansomLook by directly accessing the /admin/crypto/g

CVE-2026-78391 HIGH
8.8 Aug 24

Stored XSS in RansomLook's cryptocurrency wallet detail view allows attacker-controlled JavaScript to execute in the sec

CVE-2026-78386 HIGH
8.7 Aug 24

Sensitive scraping credentials and bypass logic were exposed to unauthenticated callers through multiple RansomLook API

CVE-2026-78380 HIGH
8.7 Aug 24

RansomLook versions through 2.0.0 leaks victim posts belonging to privately configured ransomware groups and markets thr

CVE-2026-78381 HIGH
8.2 Aug 24

Path traversal in RansomLook's GroupPost.get API handler allows an attacker controlling a malicious upstream instance to

CVE-2026-78385 HIGH
8.2 Aug 24

PDF export in RansomLook allows authenticated analysts to read arbitrary server-side files and conduct server-side reque

CVE-2026-78553 HIGH
7.0 Aug 24

Insecure file creation in RansomLook (≤ 2.0.0) exposes the Flask session-signing secret to any local OS user with read a

CVE-2026-78378 MEDIUM
6.9 Aug 24

Redis glob pattern injection in Ransomlook versions up to and including 2.0.0 allows unauthenticated remote attackers to

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