Skip to main content

Coolify CVE-2026-100746

| EUVDEUVD-2026-87884 MEDIUM
Missing Authentication for Critical Function (CWE-306)
2026-09-27 VulDB GHSA-696w-453m-h6jm
5.5
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Identify Coolify GitHub App UUID
  2. Delivery
    Send unauthenticated redirect callback with forged state+code
  3. Exploit
    Bypass missing authentication check
  4. Execution
    Overwrite stored GitHub App credentials
  5. Impact
    Hijack or disrupt Git deployment integration

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

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

Exploitation Conditions

Reachable on the unauthenticated GET callback /webhooks/source/github/redirect (Github::redirect) in Coolify up to 4.1.0. The attacker must supply a 'state' value equal to an existing GithubApp UUID and a 'code' for GitHub App manifest conversion; success overwrites that App's stored credentials because the pre-patch code performed no authenticated-user, current-team ownership, or already-configured check. Limiting factors: the GitHub App UUID is a random identifier the attacker must know or discover, and the target App must exist (typically mid-setup), which meaningfully raises attack complexity above the vendor's AC:L rating. No user interaction and no authentication are required once a valid UUID is known.

Impact

This is a genuine but moderate-severity issue. The vendor CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N, VC:L/VI:L/VA:L, E:P) rates it 6.9, driven by unauthenticated network reachability with low impact across all three dimensions. CWE-306 (missing authentication) is confirmed by the source diff: the pre-patch Github::redirect handler resolved a GitHub App purely by attacker-supplied 'state' UUID (GithubApp::where('uuid',$state)->firstOrFail()) with no authenticated-user, team-ownership, or already-configured guard, letting an unauthenticated request overwrite an existing GitHub App's credentials (client_id/client_secret/webhook_secret/private_key). POC=YES (public exploit archive), so 'publicly available exploit code exists', but there is no CISA KEV listing and no EPSS score in the input, so there is no evidence of active exploitation - treat the public POC and actual exploitation as distinct signals. Practical exploitation is gated by needing to reference an existing GitHub App by its random UUID during an in-flight setup, which is why the vendor's AC:L is arguably generous - knowing/guessing that UUID raises real-world complexity (see assessed vector). SSVC-style read: exploitation=public-PoC, automatable=partial (UUID discovery limits mass automation), technical impact=partial. Net: a real fix-worthy flaw for Coolify operators, not an emergency-tier internet-wide risk.

Exploit ScenarioDerived

An attacker who learns or observes a Coolify instance's in-progress GitHub App UUID sends a crafted unauthenticated GET to /webhooks/source/github/redirect with that UUID as 'state' and their own GitHub App manifest 'code', causing Coolify to fetch and persist attacker-controlled GitHub App credentials over the victim's record. A public proof-of-concept exists (the 'coolify-unauth-secret-overwrite-github-app-redirect' archive). Because AV:N/PR:N applies, no authentication is needed, though the attacker must target a valid App UUID.

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

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

Alert me

AnalysisAIv1 – Sep 27, 2026

Missing authentication in Coolify's GitHub App setup handler (Github::redirect at /webhooks/source/github/redirect) in versions up to and including 4.1.0 allows unauthenticated remote attackers to supply a crafted 'state' value matching an existing GitHub App UUID and cause the application to run the GitHub App manifest conversion flow, overwriting that App's stored client ID, client secret, webhook secret and private key. Publicly available exploit code exists, but exploitation is gated on knowing a valid - typically mid-setup - GitHub App UUID, which the independent assessment treats as raising attack complexity above the vendor's AC:L rating (CVSS:3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N), making this a genuine but moderate-severity credential-overwrite issue rather than a trivially mass-exploitable bypass. No CISA KEV entry or confirmed in-the-wild activity has been reported; the CVE is currently associated only with published proof-of-concept material against the affected endpoint.

RemediationAI

Vendor-released patch: upgrade Coolify to version 4.1.1, which is the tagged release containing commit fc89e357feed5180ed1ab5eb9cb330578f025539 (PR https://github.com/coollabsio/coolify/pull/10362, release notes at https://github.com/coollabsio/coolify/releases/tag/v4.1.1); after upgrading, rotate the client secret, webhook secret and private key of every GitHub App configured through Coolify during the exposed window, since the pre-patch flow could have allowed attacker-supplied credentials to be stored in place of the legitimate ones. If immediate upgrade is not possible, the most direct compensating control is to block external access to /webhooks/source/github/redirect at the reverse proxy or firewall and allow it only from trusted operator networks - the trade-off is that GitHub App registration and manifest setup will fail until the rule is removed. Additional hardening includes removing or completing any partially configured GitHub App records so their UUIDs are not left discoverable, and monitoring Coolify audit/application logs for unexpected GitHub App credential changes or requests to the redirect endpoint with unusual 'state' or 'code' values; blocking the endpoint entirely is not a substitute for patching because legitimate installation callbacks use the same route.

Affected VersionsENISA

coolify 4.0
coolify 4.1.0

Affected Packages

euvd coolify 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

Coolify is a Laravel-based self-hosted PaaS, and the vulnerable code lives in app/Http/Controllers/Webhook/Github.php on the Github::redirect route, part of the GitHub App Setup Handler. The root cause is CWE-306 (Missing Authentication for Critical Function): the pre-patch flow read the 'state' query parameter and used it directly as a lookup key via GithubApp::where('uuid', $state)->firstOrFail(), then, after a successful GitHub App manifest conversion call ($api_url/app-manifests/$code/conversions), wrote the returned id, slug, client_id, client_secret, pem and webhook_secret onto the matched record. No authenticated-user check, no current-team ownership check, and no 'credentials already configured' check were performed, so the unauthenticated GET callback could be replayed against any known App UUID. The upstream fix (PR #10362, commit fc89e357feed5180ed1ab5eb9cb330578f025539) replaces the state-as-lookup design with a cache-backed, one-time state token (Illuminate\Support\Facades\Cache::pull with an action binding and a team_id match against the authenticated user's current team), adds abort_if checks for missing code, incomplete manifest responses and already-configured credentials, and introduces an outbound GitHub API verification (JWT-authenticated GET to /app/installations/{installation_id}) so a client-supplied installation_id can no longer be persisted without proof it belongs to the App. The CPE cpe:2.3:a:coollabsio:coolify:*:*:*:*:*:*:*:* is version-wildcarded, so version scoping must come from the vendor description and release notes (vulnerable through 4.1.0, fixed in 4.1.1).

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 (VulDB) PRIMARY 5.5 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 4.8 MEDIUM

Unauthenticated network callback (AV:N/PR:N/UI:N) but requires knowing a random existing GitHub App UUID mid-setup (AC:H); overwriting integration credentials yields low integrity/confidentiality impact, no availability loss.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

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

Lifecycle Timeline

2
CVSS changed
Sep 27, 2026 - 04:22 NVD
6.9 (MEDIUM) 5.5 (MEDIUM)
CVE Published
Sep 27, 2026 - 03:30 cve.org
MEDIUM 6.9

DescriptionCVE.org

A vulnerability was found in coollabsio Coolify up to 4.1.0. This affects the function Github::redirect of the file /webhooks/source/github/redirect of the component GitHub App Setup Handler. The manipulation of the argument state results in missing authentication. The attack can be executed remotely. The exploit has been made public and could be used. Upgrading to version 4.1.1 mitigates this issue. The patch is identified as fc89e357feed5180ed1ab5eb9cb330578f025539. The affected component should be upgraded.

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Medium
popular open-source self-hosted PaaS, but niche self-hosted deployment footprint
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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 Yes
EPSS 0.5%
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
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

48
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: +20
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