Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-34038 — CVE-2026-34038: Authentifizierte Remote-Befehlseinschleusung in Coolify | Kitploit
Tools/GitHubGitHub/themehackers/cve-2026-34038
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPapers & ForschungLernen & Bildung
GitHubthemehackers/cve-2026-34038

CVE-2026-34038

CVE-2026-34038: Authentifizierte Remote-Befehlseinschleusung in Coolify

Repository anzeigen
13vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-34038: Authentifizierte Remote-Befehlseinschleusung in Coolify

Dieses Repository enthält Dokumentation und Analyse für CVE-2026-34038, eine kritische Befehlseinschleusungsschwachstelle in Coolify.

Zusammenfassung

Eine authentifizierte Remote-Befehlseinschleusungsschwachstelle (CWE-78) in Coolify ermöglicht es Benutzern mit Anwendungs-"write"-Berechtigungen, Remote Code Execution (RCE) und Exfiltration sensibler Umgebungsvariablen (z. B. Datenbank-Anmeldedaten, API-Schlüssel) über Bereitstellungsprotokolle zu erreichen, selbst wenn die Build-Umgebung den Docker-Socket isoliert.

  • Schwachstellentyp: CWE-78 (OS-Befehlseinschleusung)
  • Schweregrad: Kritisch (CVSS 10.0)
  • Vektor: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Voraussetzungen und Einschränkungen

  • Mindestens erforderliche Berechtigungen: write (zum Aktualisieren der Konfiguration) und read:sensitive (zum Lesen exfiltrierter Daten über Protokolle).
  • Umgehung: Es existiert ein Mechanismus, der es Tokens ohne explizite deploy-Berechtigungen ermöglicht, Builds auszulösen.
  • Angriffsfläche: Die gesamte Angriffsfläche ist größer als ursprünglich angenommen, da keine Administrator-/Root-Rechte erforderlich sind.

  • Technische Details

    1. dockerfile_location-Einschleusung

    Datei: app/Jobs/ApplicationDeploymentJob.php

    Der Eingabe fehlt ordnungsgemäße Shell-Escape- oder Eingabevalidierung, was eine direkte Befehlseinschleusung mittels Metazeichen wie ;, && und Pipes ermöglicht.

    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. pre_deployment_command-Ausführung

    Datei: app/Jobs/ApplicationDeploymentJob.php (Zeilen 3882-3909)

    Obwohl eine grundlegende Escaping durchgeführt wird, führt die Funktion natürlicherweise native Shell-Befehle aus, was es ermöglicht, Daten direkt in die Build-Protokolle zu schreiben.

    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,
            ],
        );
    }
    

    Behebung

    1. Bereinigung der dockerfile_location-Eingabe (in ApplicationDeploymentJob.php):

    Validieren Sie die Eingabe mit strengen regulären Ausdrücken und escapen Sie das Shell-Argument:

    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. API-Level-Validierung (bootstrap/helpers/api.php):

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

    3. Weitere Richtlinien:

    • Erzwingen Sie strenge Whitelists, die Shell-Metazeichen blockieren.
    • Beheben Sie die Logik zur Umgehung der Bereitstellungsberechtigungen.
    • Prüfen Sie äquivalente Felder wie docker_compose_location.

    Referenzen und Danksagungen

    • Melder / Credits: ThemeHackers
    • Offizielles Advisory: GitHub Security Advisory (GHSA-qqrq-r9h4-x6wp)
    Tool herunterladen