Record summary

CVE-2025-64424 has a selected CVSS score of 9.4 (critical); EIP currently links 1 repository PoC and 2 lab environments.

Description

Coolify is an open-source and self-hostable tool for managing servers, applications, and databases. In Coolify versions up to and including v4.0.0-beta.434, a command injection vulnerability exists in the git source input fields of a resource, allowing a low privileged user (member) to execute system commands as root on the Coolify instance. As of time of publication, it is unclear if a patch is available.

Description source: CVE List

Exploitation context

Available material

Repository PoCs
1
Lab environments
2

CISA SSVC decision

ExploitationPoC
AutomatableNo
Technical impactTotal

CISA Coordinator · SSVC 2.0.3 · Evaluated Jan 5, 2026 · Source: CVE List

Affected products and versions

1
ProductSourceVersion rangeStatus
CVE List<= 4.0.0-beta.434affected

Proofs of concept

1

Repository PoCs

GitHubandroidteacher/CVE-2025-64424-Coolify-Repository PoCby androidteacherStars: 1Exploit15 files

35.7 KiB

GitHub

PoC details
Analysisdeepseek-v4-pro:cloud ·

Technical assessment

A Python script using Playwright to automate browser interaction with a vulnerable Coolify instance, injecting a command injection payload into a Git repository URL field to execute a shell command that reads a flag file.

Backdoor review

No backdoor observed in reviewed code

The reviewed text files (README.md and lab/verify_exploit.py) describe a deliberately vulnerable Coolify lab for CVE-2025-64424 and a Playwright script that automates exploitation of the stated command injection vulnerability. The script injects a payload into a repository URL field to read a flag file, consistent with the educational CTF purpose declared in the README. No concealed, deceptive, or unrelated harmful behavior was observed in the supplied text.

ClassificationExploit
Model confidence95%
AuthenticationRequired
LanguagesPython
Target softwareCoolify
Attack typesCommand InjectionRemote Code Execution
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The script actively injects a shell command ('cat /flag/flag.txt') into a web application field and submits it, which is the definition of an exploit. It does not merely check for the vulnerability; it exercises it to achieve code execution.

lab/verify_exploit.py:78-87

Requirements

  • A running instance of the vulnerable Coolify lab environment accessible at http://localhost:10005.lab/verify_exploit.py:12
  • Ability to register a new user account on the Coolify instance.lab/verify_exploit.py:15-27

Observed behavior

  • Registers a new admin user on the Coolify instance.lab/verify_exploit.py:15-27
  • Navigates to the application creation page and selects a public Git repository source.lab/verify_exploit.py:40-75
  • Injects a command injection payload into the repository URL field: 'payload withheld'.lab/verify_exploit.py:83-84
  • Submits the form to trigger the command injection.lab/verify_exploit.py:87
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Payload
Payload withheldCommand injection payload used in the PoC script to exploit CVE-2025-64424 and read a CTF flag file.lab/verify_exploit.py:84
Review boundaries

What the analysis did not establish

  • Only two of the 15 files in the repository were provided as text evidence. The remaining 13 files, including potential Docker configurations and walkthrough documentation, were omitted.
  • The evidence does not include the execution output or verification that the command injection was successful; the script's behavior is inferred from its source code.
  • Only 2 of 15 files in the repository were provided as readable text; 13 files were omitted from the evidence packet. The omitted files may contain additional content not reviewed here.
  • Binary files were flagged as metadata-only and not analyzed; any binary content in the repository was not inspected.
Model interpretation

This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.

Docker lab environments

2
GitHub

lab/docker-compose.yml

androidteacher/CVE-2025-64424-Coolify-Created
Model review verdict: Suspicious behavior.Vuln labCVE-2025-64424Compose · mixed

1 Compose manifest · 1 Dockerfile · 5 services

AnalysisSuspicious behaviordeepseek-v4-pro:cloud ·

Environment assessment

A multi-container Docker Compose lab that deploys a deliberately vulnerable Coolify instance (version 4.0.0-beta.420.6) alongside supporting services (PostgreSQL, Redis, Soketi) and a helper container (coolify-host) that acts as an SSH-accessible host agent. The lab is designed for educational exploitation of CVE-2025-64424, a command injection vulnerability in Coolify's Git repository source fields.

README.md:1-7lab/docker-compose.yml:1-104

Lab assessment

Vulnerability lab

The README explicitly states the repository contains a deliberately vulnerable version of Coolify for educational purposes, CTF environments, and cybersecurity training, targeting CVE-2025-64424. The Docker Compose file deploys a known-vulnerable Coolify image (4.0.0-beta.420.6) and includes a flag file for capture-the-flag exercises.

README.md:1-7lab/Dockerfile:1
Lab shapeCompose · mixed
Services5
Compose manifests1
Dockerfiles1
Evidence & reasoningComponents · CVE assessment · exercise context · review boundaries
Components

Services and files described by the evidence

coolify

vulnerable web applicationtarget of CVE-2025-64424

The main Coolify web application built from a vulnerable base image (coollabsio/coolify:4.0.0-beta.420.6). It exposes port 8080 internally, mapped to host port 10005. It mounts the Docker socket and a named volume for SSH keys, and connects to PostgreSQL, Redis, and Soketi backends.

lab/docker-compose.yml:4-40lab/Dockerfile:1

coolify-host

SSH-accessible host agentflag holder

An Alpine container that installs OpenSSH, bash, and docker-cli, then waits for an SSH key generated by the coolify container to appear in a shared volume. It configures that key for root SSH access and starts sshd. It also mounts the flag file read-only and the Docker socket.

lab/docker-compose.yml:42-66

postgres

database backend

PostgreSQL 15 Alpine container providing the database for Coolify.

lab/docker-compose.yml:68-76

redis

cache backend

Redis 7 Alpine container used as a cache by Coolify.

lab/docker-compose.yml:78-82

soketi

WebSocket server

Soketi WebSocket server providing real-time communication for Coolify.

lab/docker-compose.yml:84-96
CVE assessment

How the supplied evidence relates each vulnerability

CVE-2025-64424

Supported by supplied evidence

The README explicitly associates the lab with CVE-2025-64424, describing it as a command injection/RCE vulnerability in Coolify versions prior to 4.0.0-beta.420.7. The lab deploys version 4.0.0-beta.420.6, which falls within the vulnerable range. The exploit script (verify_exploit.py) demonstrates injection of a command into a Git repository URL field, consistent with the described vulnerability.

README.md:1-7lab/Dockerfile:1lab/verify_exploit.py:1-104
Exercise context

Requirements and sequence described by the evidence

Prerequisites

  • Docker and Docker Compose must be installed on the host.README.md:11-13
  • The lab must be cloned and started with 'docker compose up --build -d' from the lab directory.README.md:17-22
  • The host must expose port 10005 for the Coolify web interface.lab/docker-compose.yml:29-30
  • The Docker socket (/var/run/docker.sock) must be mounted into both coolify and coolify-host containers, granting them control over the host's Docker daemon.lab/docker-compose.yml:33lab/docker-compose.yml:65

Evidence-described exercise path

  1. Deploy the lab using 'docker compose up --build -d'.README.md:17-22
  2. Access the Coolify web interface at http://localhost:10005.README.md:24-25
  3. Register an admin user and navigate to the application creation flow.lab/verify_exploit.py:12-60
  4. Inject a command injection payload into the Git repository URL field (e.g., 'git@github.com:fake/repo.git; cat /flag/flag.txt > /tmp/flag_out.txt; cat /tmp/flag_out.txt #').lab/verify_exploit.py:80-84
  5. Submit the form to trigger the vulnerability and execute the injected command on the coolify container.lab/verify_exploit.py:86-87
  6. Retrieve the flag from /flag/flag.txt (either directly on the coolify container or via the coolify-host container).lab/flag/flag.txt:1README.md:50-52
Safety-review evidence

Behaviors behind the stored safety assessment

Suspicious behavior

The lab mounts the host's Docker socket (/var/run/docker.sock) into both the coolify and coolify-host containers. This grants those containers full control over the host's Docker daemon, which is a well-known path to host compromise. While Docker socket access is a documented prerequisite for the lab's functionality (Coolify manages Docker containers), the combination of a deliberately vulnerable web application with unrestricted Docker socket access creates a concrete risk that an attacker exploiting the lab could escape the container and compromise the Docker host. The README does not warn about this risk or recommend isolation measures. This is a suspicious indicator because the lab's design enables host impact beyond the intended target.

lab/docker-compose.yml:33lab/docker-compose.yml:65

Indicators requiring review

  • The Docker socket (/var/run/docker.sock) is mounted into both the coolify and coolify-host containers, granting them unrestricted control over the host's Docker daemon. This enables container escape and host compromise if the vulnerable application is exploited.lab/docker-compose.yml:33lab/docker-compose.yml:65
Review boundaries

What the analysis did not establish

  • The base Coolify image (coollabsio/coolify:4.0.0-beta.420.6) is pulled from a public registry and its internal behavior is uninspected; only the Dockerfile and Compose file are analyzed.
  • The verify_exploit.py script is a UI automation script that drives a browser; its effectiveness depends on the exact state of the Coolify UI, which may change.
  • The lab's safety depends on the operator isolating the environment; no warnings about Docker socket risks are provided in the README.
Model interpretation

This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.

GitHub

lab

androidteacher/CVE-2025-64424-Coolify-Created
Vuln labCVE-2025-64424Dockerfile

1 Dockerfile

Analysisdeepseek-v4-pro:cloud ·

Environment assessment

A single Dockerfile (lab/Dockerfile.helper) that extends ghcr.io/coollabsio/coolify-helper:1.0.12 and writes a flag file. The broader repository README describes a multi-container Coolify CVE-2025-64424 RCE lab, but the supplied evidence packet contains only this helper Dockerfile and supporting scripts; the main docker-compose.yml and Dockerfile are listed in the file inventory but their content is not included.

lab/Dockerfile.helper:1-2README.md:1-54

Lab assessment

Vulnerability lab

The README explicitly states the repository contains a deliberately vulnerable version of Coolify for educational purposes, CTF environments, and cybersecurity training, targeting CVE-2025-64424. The helper Dockerfile creates a flag file consistent with a CTF objective.

README.md:1-5
Lab shapeDockerfile
ServicesUnknown
Compose manifests0
Dockerfiles1
Evidence & reasoningComponents · CVE assessment · exercise context · review boundaries
Components

Services and files described by the evidence

coolify-helper image extension

flag deployment

Extends ghcr.io/coollabsio/coolify-helper:1.0.12 to create /flag/flag.txt containing a CTF flag string.

lab/Dockerfile.helper:1-2

setup_ssh.sh

SSH server setupkey generation

Installs and configures an internal SSH server, generates an ed25519 key pair, and copies the private key to a web-accessible location for the Coolify application.

lab/setup_ssh.sh:1-17

start-with-ssh.sh

SSH daemon launcher

Starts the SSH daemon in the background and then executes the provided command.

lab/start-with-ssh.sh:1-3

verify_exploit.py

exploit automationUI driver

Uses Playwright to automate browser interaction with the Coolify web interface, registers a user, navigates to the application creation form, and injects a command injection payload into the repository URL field to read /flag/flag.txt.

lab/verify_exploit.py:1-104

dump_html.py

debugging aid

Navigates to the Coolify web interface and saves the page HTML to a file for inspection.

lab/dump_html.py:1-13

install.sh

Coolify host installation script

A standalone installation script for Coolify on a Docker host. It checks prerequisites, configures Docker, pulls the Coolify image, and starts the Coolify container. Not directly part of the lab's containerized environment but included in the lab directory.

lab/install.sh:1-382
CVE assessment

How the supplied evidence relates each vulnerability

CVE-2025-64424

Supported by supplied evidence

The README explicitly associates the lab with CVE-2025-64424, describing it as a Command Injection / RCE vulnerability in Coolify Git repository source fields. The verify_exploit.py script demonstrates a command injection payload in the repository URL field, consistent with the described vulnerability.

README.md:1-5lab/verify_exploit.py:72-73
Exercise context

Requirements and sequence described by the evidence

Prerequisites

  • Docker and Docker Compose must be installed on the host.README.md:11-13
  • The lab must be deployed using docker compose up from the lab directory.README.md:17-19
  • The vulnerable Coolify web interface must be accessible at http://localhost:10005.README.md:22-23
  • Playwright and its dependencies must be installed to run verify_exploit.py.lab/verify_exploit.py:3

Evidence-described exercise path

  1. Clone the repository and navigate to the lab directory.README.md:14-16
  2. Start the vulnerable environment with docker compose up --build -d.README.md:17-19
  3. Access the Coolify web interface at http://localhost:10005.README.md:22-23
  4. Run verify_exploit.py to automate the RCE exploit, or manually inject a command injection payload into the repository URL field during application creation.lab/verify_exploit.py:72-73
  5. Retrieve the flag from /flag/flag.txt inside the compromised container.lab/Dockerfile.helper:2lab/verify_exploit.py:72-73
Safety-review evidence

Behaviors behind the stored safety assessment

No harmful behavior observed

All visible behavior is directed at the lab's own target (the Coolify application container). The exploit script reads a local flag file inside the container. The SSH setup scripts configure an internal SSH server for the lab environment. No evidence of host escape, external connections, persistence, credential theft, or destructive actions outside the lab target.

lab/verify_exploit.py:72-73lab/setup_ssh.sh:1-17lab/start-with-ssh.sh:1-3
Review boundaries

What the analysis did not establish

  • The main docker-compose.yml and Dockerfile for the Coolify application are listed in the file inventory but their content is not included in the evidence packet, so the full multi-container topology cannot be assessed.
  • The install.sh script is a host-level installation script that would modify the Docker host if executed, but it is not invoked by any lab component and is only present as a file in the lab directory.
Model interpretation

This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.

References

2