CVE-2026-41896: Coolify Webhook Authentication Bypass – Unauthenticated Deployment Trigger
Coolify, an open-source platform for managing servers and applications, contains a critical authentication bypass in its webhook validation system. When a Coolify application is first created, the webhook secret used to verify GitHub webhook requests is left null (empty). Due to how PHP handles null values in cryptographic functions, this null secret gets treated as an empty string, allowing attackers to calculate the expected signature themselves. By forging a valid webhook signature, an attacker can trigger unauthorized deployments without any authentication. This affects all Coolify versions before 4.0.0-beta.474.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
- Weaknesses (CWE)
- CWE-287
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-29 / 2026-06-30
NVD description (verbatim)
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.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability stems from improper initialization of the manual_webhook_secret_github field, which serves as the HMAC key for validating incoming webhook requests. When this field is null, PHP's hash_hmac() function silently coerces the null value to an empty string, causing the function to compute hash_hmac('sha256', $payload, ''). Since the payload is typically public (the webhook body from GitHub) and the key is now deterministic and empty, an attacker can independently calculate the valid HMAC-SHA256 signature. By crafting a request with the forged X-Hub-Signature-256 header containing this precomputed hash, the server accepts the request as legitimate, bypassing webhook authentication entirely. The issue affects CWE-287 (Improper Authentication).
Business impact
An attacker exploiting this vulnerability can trigger arbitrary deployments in a Coolify instance without credentials. This enables attackers to deploy malicious code, modify running applications, corrupt databases, or cause denial of service. For organizations relying on Coolify for production infrastructure, unauthorized deployments represent a critical integrity and availability threat. The attack requires no special access or prior knowledge of secrets, making it a high-risk vulnerability for any exposed Coolify instance.
Affected systems
All Coolify installations running versions prior to 4.0.0-beta.474 are affected, particularly those with applications that have not been manually assigned a webhook secret. The vulnerability is present by default in newly created applications. Organizations running self-hosted Coolify instances with GitHub webhook integrations are most at risk.
Exploitability
Exploitability is very high. The attack requires no authentication, no special network positioning, and no user interaction. An attacker needs only knowledge of the deployment payload format (typically documented or easily inferred) and the ability to send an HTTP request to the webhook endpoint. The CVSS 3.1 score of 7.5 (HIGH) reflects high network accessibility and low attack complexity, though no confidentiality impact occurs. The primary impact is integrity violation through unauthorized code deployment.
Remediation
Upgrade Coolify to version 4.0.0-beta.474 or later, which fixes the nullable webhook secret issue by ensuring a proper default or required value. Organizations should also audit existing Coolify applications to verify that webhook secrets have been explicitly set rather than left null. Additionally, review webhook request logs to detect any suspicious or unexpected deployment triggers that may indicate prior exploitation.
Patch guidance
Update Coolify to 4.0.0-beta.474 or later. If you are running a stable release branch, monitor the project's releases for a stable version incorporating this fix. Since Coolify is self-hosted, verify your current version and pull the latest container image or code from the official repository. After patching, confirm that all existing applications have non-null webhook secrets configured in the settings.
Detection guidance
Monitor Coolify webhook endpoint logs for requests with X-Hub-Signature-256 headers that lack corresponding legitimate GitHub webhook events. Look for deployment triggers that occur without corresponding code pushes or pull requests. Enable audit logging in Coolify to track all deployment events and their origins. For network-level detection, monitor for repeated attempts to access webhook endpoints from external sources, particularly with varying payloads but consistent signature patterns.
Why prioritize this
This vulnerability merits immediate patching because it enables unauthenticated code execution in a deployment context with zero complexity and no user interaction required. Any exposed Coolify instance is exploitable, and the impact directly affects infrastructure integrity and availability. The vulnerability's presence in default application configurations makes it particularly dangerous for organizations that may not have explicitly configured webhook secrets.
Risk score, explained
The CVSS 3.1 score of 7.5 (HIGH) appropriately reflects the severity: network-accessible attack vector (AV:N), low attack complexity (AC:L), no privileges required (PR:N), no user interaction (UI:N), and high integrity impact (I:H) without confidentiality or availability impact. In practice, the risk is amplified by the fact that this is a default vulnerability in newly created applications and the consequences of unauthorized deployment can be severe depending on the application's criticality.
Frequently asked questions
Do I need to manually set webhook secrets on all existing applications?
Yes. While the fix in 4.0.0-beta.474 prevents the issue in new applications, existing applications that were created with a null secret retain that null value after upgrade. You should audit your applications and explicitly configure webhook secrets. Alternatively, you can regenerate or reset the webhook secret for each application through the Coolify settings interface.
How can I tell if my Coolify instance has been exploited?
Review your deployment logs for any triggered deployments that do not correspond to actual GitHub pushes or pull requests you authorized. Check the request logs for your webhook endpoints for suspicious timing or patterns. Enable verbose logging if available and look for webhook requests with valid signatures but no matching GitHub event webhooks.
Is this vulnerability exploitable if GitHub webhooks are disabled?
If GitHub webhooks are completely disabled or not configured, the vulnerability cannot be exploited in the normal flow. However, an attacker with access to the webhook endpoint URL could still craft a request directly. The best practice is to ensure webhook secrets are explicitly set even if webhooks are not currently in use.
What happens if I upgrade but don't update the webhook secrets?
Upgrading to 4.0.0-beta.474 fixes the default behavior for new applications but does not retroactively change existing null secrets. Applications with pre-existing null secrets will continue to be vulnerable until you explicitly set a secret value for each application.
This analysis is based on CVE-2026-41896 as published. Security professionals should verify all patch versions and remediation steps against official Coolify project documentation and advisories. The vulnerability's severity may vary depending on network exposure, authentication controls, and operational security practices in your environment. This information is provided for informational and defensive purposes only. Source: NVD (public-domain), retrieved 2026-08-08. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2026-10157HIGHOpen5GS NGAP Authentication Bypass Vulnerability – 5G Core Network Risk
- CVE-2026-10167HIGHAuthentication Bypass in BrinaryBrains School Management System
- CVE-2026-10243HIGHSmart Parking System 1.0 Authentication Bypass – Remote Admin Access
- CVE-2026-10281HIGHEnderfga claw-orchestrator Authentication Bypass – Patch Available
- CVE-2026-10288HIGHHotel Reservation System Admin Authentication Bypass
- CVE-2026-10560HIGHIBM Langflow OSS Missing Authentication in Build Endpoints (CVSS 8.2)
- CVE-2026-10617HIGHGoClaw Webhook Authentication Bypass – Remote Exploitation
- CVE-2026-10619HIGHsayan365 Student-Management-System Remote Authentication Bypass