Summary
CVE-2026-41896 is a high-severity improper authentication vulnerability (CWE-287) in Coolify, an open-source self-hostable platform for managing servers, applications, and databases. The flaw allows an unauthenticated remote attacker to forge a valid GitHub webhook signature and trigger arbitrary deployments on any affected Coolify instance where a webhook secret was never explicitly configured. It carries a CVSS v3.1 base score of 7.5 (High) and is fixed in v4.0.0-beta.474.
Technical details
- Root cause: Coolify’s
manual_webhook_secret_githubfield — used as the HMAC key to validate incoming GitHub webhook requests — is a nullable database column with no default value. Newly created applications therefore have anullwebhook secret. PHP’shash_hmac()function silently coerces anullkey to an empty string'', causing the server to computehash_hmac('sha256', $payload, '')— a fully deterministic value that any attacker can independently reproduce without any knowledge of a secret. - Affected components: The same null-coercion issue affects the Bitbucket and Gitea webhook controllers (
app/Http/Controllers/Webhook/Bitbucket.php,app/Http/Controllers/Webhook/Gitea.php) in addition to the primary GitHub controller (app/Http/Controllers/Webhook/Github.php). - Trigger conditions: An application created in Coolify without an explicitly set webhook secret (the default state for new applications) is vulnerable. No authentication, no credentials, and no prior knowledge of the target instance are required.
- Attack vector: The attacker computes
hash_hmac('sha256', <arbitrary_payload>, ''), submits it as theX-Hub-Signature-256: sha256=<hash>HTTP header, and sends the forged webhook request to the Coolify instance’s publicly reachable webhook endpoint. - Impact: Successful exploitation allows an unauthenticated attacker to trigger deployments on managed servers. Depending on the deployment configuration, this can result in unauthorized code execution on infrastructure managed by Coolify, exposure of SSH keys, or disruption of running services.
Affected software
- Coolify (coollabsio/coolify): all versions prior to 4.0.0-beta.474
Severity
- CVSS v3.1 Base Score: 7.5 (High)
- Vector String:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Mitigation and recommended actions
- Immediate patch: Upgrade Coolify to v4.0.0-beta.474 or later. The fix (PR #9652) strengthens HMAC signature verification, auto-generates cryptographically random secrets for new applications, backfills existing applications that have a null secret with encrypted values, and rejects webhook deliveries when no secret is configured.
- If immediate patching is not feasible: Manually set a strong, random webhook secret for every existing Coolify application via the application settings. Additionally, restrict network access to the Coolify instance’s webhook endpoint (default port 8000) at the firewall or reverse-proxy level to trusted IP ranges only (e.g., GitHub’s published webhook IP ranges).
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

