Skip to main content

Coolify CVE-2026-41896

| EUVDEUVD-2026-40223 HIGH
Improper Authentication (CWE-287)
2026-06-29 GitHub_M
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Identify exposed Coolify webhook endpoint
  2. Delivery
    Craft deployment trigger payload
  3. Exploit
    Compute HMAC with empty key
  4. Execution
    Send forged X-Hub-Signature-256 header
  5. Impact
    Server validates and triggers deployment

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the target application's manual_webhook_secret_github value to be null/empty - the default state for applications created in Coolify prior to 4.0.0-beta.474 that were never assigned a manual webhook secret - and the Coolify webhook endpoint must be network-reachable by the attacker. Given that precondition, no authentication, credentials, user interaction, or secret knowledge is needed (CVSS PR:N/UI:N): the attacker simply computes hash_hmac('sha256', payload, '') and supplies it in X-Hub-Signature-256. What LIMITS exploitation: applications that already have a non-null webhook secret configured are not exploitable via this empty-key path, instances not exposed to the attacker's network are out of reach, and the impact is bounded to triggering deployments (integrity) rather than direct code execution or data disclosure.

Impact

The provided CVSS 3.1 vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N (base 7.5) is internally consistent with the description: network-reachable, low complexity, no privileges, no user interaction, with a high integrity impact (forged deployments) and no direct confidentiality or availability loss. This is a genuine, easy-to-exploit authentication bypass rather than a high-CVSS-but-low-real-risk issue, because the forged signature is deterministic and requires no secret knowledge or brute force. EPSS score, KEV status, POC availability, and SSVC decision data were NOT provided in the input, so exploitation probability and automatability cannot be quantified from this data set - the assessment that it is 'trivially exploitable' is inferred from the description's mechanics, not from an EPSS/KEV signal. Real-world priority is moderate-to-high for any organization running an exposed Coolify instance with default-created applications; the main limiting factor is the constrained impact (deployment triggering, not direct RCE or data theft) and the medium deployment footprint of the product.

Exploit ScenarioDerived

An attacker enumerates an internet-exposed Coolify instance and identifies the GitHub webhook endpoint for an application created with no webhook secret. The attacker crafts a deployment-triggering JSON payload, computes sha256=hash_hmac('sha256', payload, '') locally, and sends it with a matching X-Hub-Signature-256 header, causing Coolify to accept the forged request and trigger a deployment. No public exploit code was identified in the provided data, but the calculation requires only standard HMAC tooling.

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

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

Alert me

AnalysisAIv1 – Jun 29, 2026

Webhook signature forgery in Coolify (self-hosted PaaS) before 4.0.0-beta.474 lets unauthenticated remote attackers trigger arbitrary application deployments. Because the per-application manual_webhook_secret_github field is nullable with no default, newly created applications carry a null HMAC key; PHP's hash_hmac() silently coerces null to an empty string, so the expected X-Hub-Signature-256 becomes a deterministic value any attacker can compute offline. There is no public exploit identified at time of analysis and the flaw is not in CISA KEV, but exploitation is trivial against affected default configurations.

RemediationAI

Vendor-released patch: upgrade Coolify to 4.0.0-beta.474 or later, which fixes the null-secret HMAC coercion (per advisory GHSA-w8wm-r924-f65v, https://github.com/coollabsio/coolify/security/advisories/GHSA-w8wm-r924-f65v). If immediate upgrade is not possible, the most direct compensating control is to set a strong, non-null manual_webhook_secret_github value on every existing application so hash_hmac is keyed on real entropy rather than an empty string - note this requires updating the corresponding secret in the GitHub webhook configuration or deployments will start failing signature checks. Additionally, restrict network exposure of the webhook endpoints by placing Coolify behind a reverse proxy or firewall that allow-lists GitHub's published webhook source IP ranges, accepting that this breaks self-hosted Git providers or custom webhook senders outside those ranges. Avoid leaving newly created applications with default (null) webhook secrets until the upgrade is applied.

Affected VersionsENISA

coolify < 4.0.0-beta.474

Affected Packages

euvd coolify fix: 4.0.0-beta.474

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 vulnerability lies in Coolify's GitHub webhook validation path, which authenticates incoming requests by computing an HMAC-SHA256 over the request payload keyed on each application's manual_webhook_secret_github value and comparing it to the attacker-supplied X-Hub-Signature-256 header. CWE-287 (Improper Authentication) is the root cause: the secret column is nullable with no generated default, so freshly created applications hold a null key. PHP's hash_hmac('sha256', $payload, $key) does not reject a null key - it coerces null to the empty string '', producing hash_hmac('sha256', $payload, '') which depends only on the payload an attacker controls. The result is that the secret-keyed integrity check degrades to a publicly reproducible function, fully bypassing the intended authentication. The affected component per CPE is cpe:2.3:a:coollabsio:coolify (all versions prior to the fix).

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 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 7.5 HIGH

Remote, no auth or interaction, and trivially low complexity since the empty-key HMAC is deterministic; impact is high integrity (forged deployments) with no confidentiality or direct availability loss.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/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
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Jun 29, 2026 - 22:02 EUVD
CVE Published
Jun 29, 2026 - 20:16 cve.org
HIGH 7.5

DescriptionCVE.org

Coolify is an open-source and self-hostable tool for managing servers, applications, and databases. Prior to 4.0.0-beta.474, the HMAC key is the application's manual_webhook_secret_github field, which is used by Coolify's webhook endpoints to validate incoming requests, is nullable with no default - meaning newly created applications have a null webhook secret. PHP's hash_hmac() function silently coerces a null key to an empty string ''. So when the secret is null, the server computes hash_hmac('sha256', $payload, '') - a deterministic value that any attacker can calculate independently. By sending X-Hub-Signature-256: sha256=<hash_hmac('sha256', payload, '')>, an unauthenticated attacker can forge a valid signature and trigger deployments. This vulnerability is fixed in 4.0.0-beta.474.

Executive ViewAI

Why It Matters

Coolify deployments before version 4.0.0-beta.474 are vulnerable to unauthenticated webhook signature forgery, allowing remote attackers to trigger arbitrary application deployments without authentication. This vulnerability affects any Coolify instance using default configurations where webhook secrets are left null, creating immediate operational and integrity risk for production deployments. Organizations using Coolify should assess and mitigate exposure before attackers discover and exploit affected instances.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict webhook receiver endpoints to Git provider IP ranges via WAF or network firewall; (2) Manually set strong webhook secrets for all applications instead of relying on null defaults; (3) Require webhook signatures to be validated against your configured secrets before any deployment proceeds; (4) Temporarily disable webhook-based automatic deployments if operationally feasible; (5) Establish real-time alerting on unexpected deployment events; (6) Review webhook delivery logs in Git provider for unauthorized triggers.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Medium
popular open-source self-hosted PaaS, growing but not enterprise-ubiquitous
Social Media
2
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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Partial

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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