Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-34038 — CVE-2026-34038: Injeção Remota de Comandos Autenticada no Coolify | Kitploit
Ferramentas/GitHubGitHub/themehackers/cve-2026-34038
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebPapers e PesquisaAprendizado e Educação
GitHubthemehackers/cve-2026-34038

CVE-2026-34038

CVE-2026-34038: Injeção Remota de Comandos Autenticada no Coolify

Ver Repositório
1há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-34038: Injeção Remota de Comandos Autenticada no Coolify

Este repositório contém documentação e análise para CVE-2026-34038, uma vulnerabilidade crítica de injeção de comandos no Coolify.

Resumo

Uma vulnerabilidade autenticada de injeção remota de comandos (CWE-78) no Coolify permite que usuários com permissões "write" no aplicativo alcancem Execução Remota de Código (RCE) e Exfiltrem variáveis de ambiente sensíveis (ex.: credenciais de banco de dados, chaves de API) através dos logs de deployment, mesmo que o ambiente de build isole o socket do Docker.

  • Tipo de Vulnerabilidade: CWE-78 (Injeção de Comandos do SO)
  • Severidade: Crítica (CVSS 10.0)
  • Vetor: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Pré-requisitos e Limitações

  • Permissões Mínimas Necessárias: write (para atualizar a configuração) e read:sensitive (para ler dados exfiltrados via logs).
  • Bypass: Existe um mecanismo que permite que tokens sem permissões explícitas de deploy disparem builds.
  • Superfície de Ataque: A superfície de ataque geral é maior do que a inicialmente estimada, já que não são necessários privilégios administrativos/root.

Detalhes Técnicos

1. Injeção em dockerfile_location

Arquivo: app/Jobs/ApplicationDeploymentJob.php

A entrada não possui escaping adequado de shell nem validação de entrada, permitindo injeção direta de comandos usando metacaracteres como ;, && e pipes.

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. Execução de pre_deployment_command

Arquivo: app/Jobs/ApplicationDeploymentJob.php (Linhas 3882-3909)

Embora um escaping básico seja realizado, a função naturalmente executa comandos nativos do shell, tornando possível despejar dados diretamente nos logs de 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,
        ],
    );
}

Remediação

1. Sanitize a Entrada dockerfile_location (em ApplicationDeploymentJob.php):

Valide a entrada usando expressões regulares estritas e faça o escape do argumento do 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. Validação no Nível da API (bootstrap/helpers/api.php):

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

3. Outras Diretrizes:

  • Aplique allowlists estritas que bloqueiem metacaracteres de shell.
  • Corrija a lógica de bypass de permissão de deployment.
  • Audite campos equivalentes, como docker_compose_location.

Referências e Créditos

  • Reporter / Créditos: ThemeHackers
  • Aviso Oficial: GitHub Security Advisory (GHSA-qqrq-r9h4-x6wp)
Baixar ferramenta