Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-34038 — CVE-2026-34038: Iniezione di comandi remota autenticata in Coolify | Kitploit
Strumenti/GitHubGitHub/themehackers/cve-2026-34038
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPaper e RicercaApprendimento e Formazione
GitHubthemehackers/cve-2026-34038

CVE-2026-34038

CVE-2026-34038: Iniezione di comandi remota autenticata in Coolify

Vedi Repository
132 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-34038: Iniezione di comandi remota autenticata in Coolify

Questo repository contiene documentazione e analisi per CVE-2026-34038, una vulnerabilità critica di iniezione di comandi in Coolify.

Riepilogo

Una vulnerabilità di iniezione di comandi remota autenticata (CWE-78) in Coolify consente agli utenti con permessi di "scrittura" dell'applicazione di ottenere Esecuzione Remota di Comandi (RCE) e Esfiltrare variabili d'ambiente sensibili (es. credenziali del database, chiavi API) tramite i log di deployment, anche se l'ambiente di build isola il socket Docker.

  • Tipo di vulnerabilità: CWE-78 (Iniezione di comandi del sistema operativo)
  • Gravità: Critica (CVSS 10.0)
  • Vettore: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Prerequisiti e Limitazioni

  • Permessi minimi richiesti: write (per aggiornare la configurazione) e read:sensitive (per leggere i dati esfiltrati tramite i log).
  • Bypass: Esiste un meccanismo che consente a token senza permessi espliciti di deploy di attivare build.
  • Superficie d'attacco: La superficie d'attacco complessiva è più ampia di quanto inizialmente stimato poiché non sono richiesti privilegi amministrativi/root.

  • Dettagli Tecnici

    1. Iniezione di dockerfile_location

    File: app/Jobs/ApplicationDeploymentJob.php

    L'input manca di un corretto escaping della shell o della validazione dell'input, consentendo l'iniezione diretta di comandi utilizzando metacaratteri come ;, && e pipe.

    root@kitploit:~
    // Lines 2976-2978: Traditional build with args
    $build_command = $this->wrap_build_command_with_env_export(
        "docker build {$this->buildTarget} --network {$this->destination->network} -f {$this->workdir}{$this->dockerfile_location} {$this->build_args} --progress plain -t $this->build_image_name {$this->workdir}"
    );
    
    // Lines 526: Also used in simple dockerfile deployment
    executeInDocker($this->deployment_uuid, "echo '$dockerfile_base64' | base64 -d | tee {$this->workdir}{$this->dockerfile_location} > /dev/null"),
    

    2. Esecuzione di pre_deployment_command

    File: app/Jobs/ApplicationDeploymentJob.php (Righe 3882-3909)

    Sebbene venga eseguito un escaping di base, la funzione esegue comandi shell nativi, rendendo possibile scaricare dati direttamente nei log di build.

    root@kitploit:~
    private function run_pre_deployment_command()
    {
        if (empty($this->application->pre_deployment_command)) {
            return;
        }
        // ...
        $cmd = "sh -c '".str_replace("'", "'\\''", $this->application->pre_deployment_command)."'";
        $exec = "docker exec {$containerName} {$cmd}";
        $this->execute_remote_command(
            [
                'command' => $exec,
                'hidden' => true,
            ],
        );
    }
    

    Rimedi

    1. Sanitizzare l'input dockerfile_location (in ApplicationDeploymentJob.php):

    Convalidare l'input utilizzando espressioni regolari rigorose e fare l'escaping dell'argomento della shell:

    root@kitploit:~
    if ($this->application->dockerfile_location) {
        if (!preg_match('/^[a-zA-Z0-9._\-\/]+$/', $this->application->dockerfile_location)) {
            throw new \RuntimeException("Invalid dockerfile_location: contains forbidden characters");
        }
        if (str_contains($this->application->dockerfile_location, '..')) {
            throw new \RuntimeException("Invalid dockerfile_location: path traversal detected");
        }
        $this->dockerfile_location = escapeshellarg($this->application->dockerfile_location);
    }
    

    2. Validazione a livello API (bootstrap/helpers/api.php):

    root@kitploit:~
    'dockerfile_location' => [
        'string',
        'nullable',
        'regex:/^[a-zA-Z0-9._\-\/]+$/',
        'max:255'
    ],
    

    3. Altre linee guida:

    • Applicare allowlist rigorose che bloccano i metacaratteri della shell.
    • Correggere la logica di bypass dei permessi di deployment.
    • Verificare campi equivalenti come docker_compose_location.

    Riferimenti e Crediti

    • Segnalatore / Crediti: ThemeHackers
    • Avviso ufficiale: GitHub Security Advisory (GHSA-qqrq-r9h4-x6wp)
    Scarica lo strumento