Skip to main content

Coolify CVE-2026-121587

| EUVDEUVD-2026-116035 MEDIUM
Information Exposure (CWE-200)
2026-11-03 VulnCheck
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach manual webhook endpoint unauthenticated
  2. Delivery
    Submit repository name '%' or empty with branch main
  3. Exploit
    Unescaped LIKE matches all apps pre-signature-check
  4. Execution
    Server returns application names across all teams
  5. Impact
    Harvest cross-team app inventory for targeting

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

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

Exploitation Conditions

No special conditions beyond the product exposing its manual webhook endpoints, which exist by default in affected Coolify versions (before 4.1.1): remote unauthenticated attackers reach the GitHub/GitLab/Bitbucket/Gitea manual webhook routes and the enumeration logic runs before any signature or secret check. The attacker supplies a repository full_name of '%' or empty plus a branch value; the unescaped LIKE wildcard then matches applications regardless of team ownership. What LIMITS impact: exploitation only returns application NAMES (not source, secrets, or config), it requires that applications actually exist whose git_branch equals the submitted branch (hence attackers use common defaults like 'main'/'master'), and the instance must be running a vulnerable version (< 4.1.1) with webhook endpoints network-reachable. There is no authentication, user interaction, or non-default configuration requirement.

Impact

This is a moderate-severity information disclosure flaw (vendor CVSS 4.0 base 6.9) whose signals are internally consistent rather than conflicting. The 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) matches the description precisely: the enumeration happens on manual webhook endpoints BEFORE signature verification, so it is genuinely network-reachable and unauthenticated (PR:N confirmed). Impact is correctly capped at VC:L - only application names leak, with no integrity or availability effect (VI:N/VA:N) and no cross-system scope (SC:N/SI:N/SA:N). No EPSS score, no CISA KEV listing, and no explicit POC flag are present in the input, so exploitation probability cannot be quantified from the data. The vuln.today priority is 'this_month' rather than act_now/emergency, which aligns with a low-impact disclosure that leaks metadata (names across teams) but not credentials, source, or secrets. Net: this is a real, easily-triggered unauthenticated bug worth patching on a normal cycle, not a high-CVSS-but-illusory issue, but also not an emergency - the confidentiality blast radius is limited to application naming/structure intelligence that could feed later targeting. No key signals conflict; the main gaps are the absence of EPSS/KEV/POC telemetry (absence, not contradiction).

Exploit ScenarioDerived

An unauthenticated attacker sends an HTTP POST to a Coolify instance's manual webhook endpoint (GitHub, GitLab, Bitbucket or Gitea) supplying a repository name of '%' or empty together with a common branch such as 'main'. Because the lookup used an unescaped SQL LIKE wildcard and ran before signature verification, the server returns a payload listing the names of every application matching that branch across all teams. The attacker harvests cross-team application names as reconnaissance for further targeting. No public exploit is identified in the input, though the VulnCheck advisory and the fix commit describe the exact trigger.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 03, 2026

Unauthenticated application-name enumeration in Coolify (versions before 4.1.1) lets remote attackers list application names belonging to every team on an instance through the manual GitHub, GitLab, Bitbucket and Gitea webhook endpoints. Because the repository match runs before any webhook secret or signature check, submitting a full_name of '%' (or an empty value) together with a common branch such as 'main' turns the unescaped SQL LIKE wildcard into a match-all and returns the corresponding application names in the response payloads. Impact is limited to name disclosure - no source code, secrets or configuration are returned - and it requires that applications with a matching branch actually exist; the vendor CVSS 4.0 base score is 6.9, our independent assessment is 5.3 (CVSS 3.1), the fix is released in 4.1.1, and no public exploit or active exploitation has been reported.

RemediationAI

Vendor-released patch: upgrade Coolify to 4.1.1 or later, which ships the MatchesManualWebhookApplications trait that validates the repository full_name against a strict owner/repo pattern, abandons the SQL LIKE match for a canonicalized case-insensitive comparison, and returns a generic 'Invalid signature.' response so application names are no longer disclosed before signature verification; apply it via the release at https://github.com/coollabsio/coolify/releases/tag/v4.1.1 (changes in PR https://github.com/coollabsio/coolify/pull/10361, commits c1518ba1c0be36da42b6cef06df4b042f5733b01 and 809d9b21fa9609de2ce9b49bb838c079598da876). Until the upgrade can be scheduled, the exposure is bounded by reachability: the enumeration only works when the manual webhook routes (/webhooks/manual or equivalent) are network-reachable from the attacker, so restricting inbound access to those endpoints to the IP ranges of your actual Git provider, or placing the Coolify instance behind a VPN/private network, removes the attack path for external parties - at the cost of breaking legitimate webhook deliveries from providers you have not allow-listed. Note that these are exposure-limiting measures only; the underlying wildcard match remains until 4.1.1 is installed.

Affected VersionsENISA

coolify 0 <4.1.1

Affected Packages

euvd coolify fix: 4.1.1

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 self-hosted Laravel/PHP deployment platform, and the flaw sits in its webhook controllers (app/Http/Controllers/Webhook/Github.php, Gitlab, Bitbucket, Gitea). The manual webhook path built an Eloquent query of the form Application::where('git_repository', 'like', "%$full_name%")->where('git_branch', $branch) using the attacker-supplied repository full_name without escaping the LIKE metacharacters '%' and '_', so a wildcard value matched every row regardless of team scoping, and the per-application secret/signature failure payloads were generated after that query, echoing the matched application name. Classified as CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), the root cause is the combination of unescaped LIKE wildcards and returning application-identifying data in a pre-authentication error path. The upstream fix (PR #10361, commits c1518ba and 809d9b2) introduces the MatchesManualWebhookApplications trait: it validates full_name against a strict owner/repo regex, rejects empty input, canonicalizes repository paths (handling https URLs, git@ SSH form, .git suffix, query strings and trailing slashes), replaces the SQL LIKE with an in-memory case-insensitive hash_equals comparison, and collapses all unauthenticated failure responses to a generic 'Invalid signature.' payload so no application name is leaked before verification.

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

Unauthenticated network request processed before signature verification gives PR:N/AC:L; only application names leak so C:L with no integrity or availability impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Coolify before 4.1.1 contains an information disclosure vulnerability that allows unauthenticated attackers to enumerate application names across all teams via manual GitHub, GitLab, Bitbucket and Gitea webhooks. Attackers can send a repository name of % or empty with a common branch like main, exploiting unescaped LIKE wildcards to receive every matching application name before signature verification.

Threat Intelligence Overview

Prevalence
Medium
popular open-source self-hosted PaaS, strong in self-hosting community, limited enterprise footprint
Data Quality
4 sources
Confidence: Medium

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 N/A
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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

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