Skip to main content

Coolify CVE-2026-34198

| EUVDEUVD-2026-41984 MEDIUM
Weak Password Recovery Mechanism for Forgotten Password (CWE-640)
2026-07-07 GitHub_M
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Identify target user email
  2. Delivery
    Send password reset POST with forged X-Forwarded-Host header
  3. Exploit
    Coolify generates reset URL pointing to attacker domain
  4. Install
    Victim receives and clicks reset email link
  5. C2
    Token captured at attacker-controlled server
  6. Execute
    Replay token against real Coolify instance
  7. Impact
    Full account takeover

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Password recovery security
Exploitation Conditions

The attacker must be able to send an HTTP request with a forged X-Forwarded-Host header to the Coolify instance's password reset endpoint - no authentication or prior access required (PR:N, AV:N per CVSS). The default Coolify configuration with TrustProxies set to '*' is the enabling condition; instances that override this to trust only a specific, named reverse proxy are not exploitable via this path. The victim must click the password reset link delivered to their email (UI:R), which is the primary friction point. The attacker must have knowledge of a valid user email address to target; indiscriminate mass-triggering is possible if an email enumeration vector exists. Exploitation is limited to the password reset flow - it does not affect login sessions, API tokens, or other authentication paths. Coolify instances that are not reachable from the public internet (e.g., internal-only deployments) face significantly reduced exposure.

Impact

The NVD-assigned CVSS of 5.3 (AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N) is modest but potentially undersells real-world impact. AC:H reflects the need for an attacker to know a target's email and for the victim to click - realistic preconditions given that Coolify is often operated by small teams where user emails may be discoverable. UI:R is a genuine friction point but password reset emails are designed to be acted upon, making click-through likely. C:N is questionable: account takeover in a Coolify instance grants access to all managed servers, applications, and databases, implying confidentiality breach in post-exploitation, though the base vector narrowly scores the credential-interception step itself. EPSS data was not provided. KEV status is negative and no POC is confirmed, suggesting exploitation has not been publicly demonstrated. The attack is straightforward to execute conceptually - no memory corruption or complex timing required - so the risk is primarily gated on victim interaction and email delivery. For self-hosted deployments where the Coolify instance manages sensitive infrastructure, the effective blast radius of account takeover is high despite the mid-range base score. This is a real remediation priority for any internet-exposed Coolify instance.

Exploit ScenarioDerived

An attacker who knows (or enumerates) a Coolify user's email address sends an HTTP POST to the password reset endpoint with an X-Forwarded-Host header set to an attacker-controlled domain (e.g., evil.attacker.com). Coolify's unguarded middleware stack accepts this header as the canonical host, generates a reset URL of the form https://evil.attacker.com/reset-password?token=<TOKEN>, and emails it to the victim. When the victim clicks the link expecting a legitimate Coolify login page, the token is transmitted to the attacker's server, which can then be replayed against the real Coolify instance to take over the account. No public POC has been confirmed, but the technique is well-understood and requires no special tooling.

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

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

Alert me

AnalysisAIv1 – Jul 07, 2026

Password reset poisoning in Coolify prior to 4.0.0-beta.471 enables unauthenticated account takeover by injecting a forged X-Forwarded-Host header during a password reset request. Two compounding middleware failures make this possible: TrustProxies trusts all proxy sources unconditionally, and TrustHosts is rendered inoperable by a circular caching dependency, meaning the Host header is never validated. The reset URL is generated from the spoofed request host, so the victim's reset token is delivered to an attacker-controlled domain. No public exploit is identified at time of analysis, but the attack is low-friction and the fix is confirmed in version 4.0.0-beta.471.

RemediationAI

The confirmed fix is to upgrade to Coolify version 4.0.0-beta.471 or later, available at https://github.com/coollabsio/coolify/releases/tag/v4.0.0-beta.471. The upstream fix (PR #9193, commit 98569e4) addresses both the TrustProxies wildcard trust and the TrustHosts caching dependency. If immediate upgrade is not possible, a compensating control is to place Coolify behind a reverse proxy (e.g., nginx, Caddy) that strips or overwrites the X-Forwarded-Host header to a fixed, trusted value before requests reach the application - this prevents injection of attacker-controlled hostnames. Additionally, restricting password reset functionality to internal networks or VPN-only access removes the unauthenticated network vector entirely, though this trades operational convenience for security. Neither workaround fixes the underlying TrustHosts bypass; they only limit the attack surface. Refer to the security advisory at https://github.com/coollabsio/coolify/security/advisories/GHSA-cgj8-7m5q-x5gv for authoritative guidance.

Affected VersionsENISA

coolify < 4.0.0-beta.471

Affected Packages

euvd coolify fix: 4.0.0-beta.471

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

Coolify is a Laravel-based self-hosted PaaS platform (CPE: cpe:2.3:a:coollabsio:coolify:*:*:*:*:*:*:*:*) for managing servers, applications, and databases. The vulnerability is rooted in CWE-640 (Weak Password Recovery Mechanism for Forgotten Password), specifically a host header injection variant. Laravel's TrustProxies middleware, when configured with proxies = '*', blindly forwards X-Forwarded-Host as the canonical request host. The TrustHosts middleware - the defensive layer designed to allowlist valid hostnames - is bypassed entirely due to a circular caching dependency in its boot cycle, meaning host validation never executes. The ResetPassword notification calls url(route(..., false)) to construct the reset URL, which resolves the host from the active request object - which has already been poisoned by the injected header. This is a classic Laravel/Symfony password reset poisoning pattern, well-documented as an attack class but here enabled by dual middleware failures rather than a single misconfiguration.

Know when Coolify 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 (GitHub_M) PRIMARY 5.3 MEDIUM
AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N
vuln.today AI 6.8 MEDIUM

AV:N and PR:N confirmed; UI:R reflects required victim click; C:H added because successful account takeover exposes all managed infrastructure credentials, not just integrity.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

1
Patch available
Jul 07, 2026 - 05:01 EUVD

DescriptionCVE.org

Coolify is an open-source and self-hostable tool for managing servers, applications, and databases. Prior to 4.0.0-beta.471, the TrustProxies middleware trusts all proxies ($proxies = '*'), accepting X-Forwarded-Host from any source. The TrustHosts middleware, intended to prevent host header attacks, has a circular caching dependency that prevents it from ever validating hosts. When a password reset is requested, the ResetPassword notification generates the reset URL using url(route(..., false)), which derives the host from the (spoofable) request. An unauthenticated attacker can trigger a password reset email containing a link pointing to an attacker-controlled domain, enabling token theft and account takeover. This issue is fixed in version 4.0.0-beta.471.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Medium
popular self-hosted PaaS tool, significant community adoption
Social Media
1
Sightings
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
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.

CVE-2026-57498 CRITICAL POC
9.6 Jun 29

Cross-team authorization bypass in Coolify (open-source self-hosted PaaS) before 4.0.0-beta.474 allows an authenticated,

CVE-2025-34161 CRITICAL POC
9.4 Aug 27

Coolify versions prior to v4.0.0-beta.420.7 are vulnerable to a remote code execution vulnerability in the project deplo

CVE-2025-34159 CRITICAL POC
9.4 Aug 27

Coolify versions prior to v4.0.0-beta.420.6 are vulnerable to a remote code execution vulnerability in the application d

CVE-2025-64424 CRITICAL POC
9.4 Jan 05

Command injection in Coolify up to and including v4.0.0-beta.434 lets any authenticated low-privileged 'member' execute

CVE-2025-59156 CRITICAL POC
9.4 Jan 05

Remote code execution on the host OS is possible through Coolify's application deployment workflow prior to version 4.0.

CVE-2025-66211 CRITICAL POC
9.4 Dec 23

Authenticated command injection in Coolify's PostgreSQL initialization-script filename handling allows users with applic

CVE-2025-66210 CRITICAL POC
9.4 Dec 23

Coolify versions prior to 4.0.0-beta.451 pass user-supplied database names unsanitized into shell commands executed via

CVE-2025-66213 CRITICAL POC
9.4 Dec 23

Authenticated Coolify users who hold application or service management permissions can execute arbitrary commands as roo

CVE-2025-66212 CRITICAL POC
9.4 Dec 23

Authenticated command injection in Coolify before 4.0.0-beta.451 lets users with application or service management permi

CVE-2025-59158 CRITICAL POC
9.4 Jan 05

Stored cross-site scripting in Coolify versions up to and including v4.0.0-beta.420.6 lets an authenticated low-privileg

CVE-2026-34594 HIGH POC
8.8 Jun 29

Authenticated OS command injection in Coolify before 4.0.0-beta.471 lets any user holding destination management permiss

CVE-2026-34597 HIGH POC
8.8 Jun 29

Authenticated remote code execution in Coolify (self-hosted PaaS) before 4.0.0-beta.470 lets a low-privileged authentica

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