Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
GoCD_PoC_Supply_Chain_Attack — CVE-2021-43287 CVE-2021-43288 CVE-2021-43289 CVE-2021-43290 | Kitploit
Strumenti/GitHubGitHub/higorgabrieldcf/gocd_poc_supply_chain_attack
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitVirtualizzazione per la SicurezzaPenetration TestingSicurezza della Supply Chain
Apprendimento e Formazione
Red Teaming
GitHubhigorgabrieldcf/gocd_poc_supply_chain_attack

GoCD_PoC_Supply_Chain_Attack

CVE-2021-43287 CVE-2021-43288 CVE-2021-43289 CVE-2021-43290

Vedi Repository
21921 giorni 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

GoCD 20.10.0 — PoC: CVE-2021-43287 · CVE-2021-43288 · CVE-2021-43289 · CVE-2021-43290

Autore / Author: Higor Farias — PRIDE Security

⚠️ AVVISO LEGALE / LEGAL DISCLAIMER

[PT] Material produzido exclusivamente para fins educacionais e de pesquisa em segurança ofensiva. Utilize somente em ambientes controlados com autorização explícita. O uso indevido é de responsabilidade exclusiva do utilizador.

[EN] Prodotto esclusivamente per scopi educativi e di ricerca autorizzata in sicurezza offensiva. Utilizzare solo in ambienti controllati con esplicita autorizzazione scritta. L'uso improprio è di esclusiva responsabilità dell'utente.


Indice / Table of Contents

  1. Panoramica / Overview
  2. Impatto sulla Catena di Fornitura del Software / Software Supply Chain Impact
  3. Vulnerabilità / Vulnerabilities
  4. Catena di Attacco / Attack Chain
  5. Prerequisiti / Prerequisites
  6. Ambiente PoC con Docker / PoC Docker Environment
  7. Utilizzo degli Script / Script Usage
    • gocd_rce_noauth.py — RCE senza autenticazione / Unauthenticated RCE
    • gocd_urldns.py — URLDNS / Rilevamento di deserializzazione
  8. Riferimenti / References
  9. Cronologia / Timeline
  10. Mitigazione / Mitigation

1. Panoramica / Overview

[PT] O GoCD é uma plataforma de CI/CD mantida pela ThoughtWorks. Nas versões anteriores à 21.3.0, pesquisadores da SonarSource identificaram uma cadeia de vulnerabilidades explorável sem nenhuma autenticação. Os dois scripts deste repositório demonstram:

  • gocd_rce_noauth.py — exploração completa da cadeia até RCE (Execução Remota de Código), sem credenciais.
  • gocd_urldns.py — detecção out-of-band da desserialização Java via gadget chain URLDNS e callback DNS (requer credenciais válidas para listar agents registrados).

[EN] GoCD è una piattaforma CI/CD mantenuta da ThoughtWorks. Nelle versioni precedenti alla 21.3.0, i ricercatori di SonarSource hanno identificato una catena di vulnerabilità sfruttabile senza alcuna autenticazione. I due script in questo repository dimostrano:

  • gocd_rce_noauth.py — sfruttamento completo della catena fino a RCE (Remote Code Execution), senza credenziali.
  • gocd_urldns.py — rilevamento out-of-band della deserializzazione Java tramite gadget chain URLDNS e callback DNS (richiede credenziali valide per elencare gli agent registrati).

2. Impatto sulla Catena di Fornitura del Software / Software Supply Chain Impact

[PT] O GoCD ocupa uma posição central na cadeia de entrega de software de uma organização: ele orquestra a compilação, os testes, a geração de artefatos e os deploys em produção. Ao comprometer o servidor GoCD via RCE (como demonstrado pelo gocd_rce_noauth.py), um atacante obtém controle sobre todos os estágios desse processo — podendo inserir backdoors em binários, falsificar artefatos ou exfiltrar código-fonte e credenciais antes mesmo que qualquer produto chegue ao usuário final. O cenário é análogo ao ataque à SolarWinds (2020), onde o acesso ao pipeline de build resultou na distribuição de malware para milhares de clientes.

[EN] GoCD occupa una posizione centrale nella catena di distribuzione del software di un'organizzazione: orchestra build, test, generazione di artefatti e deploy in produzione. Compromettendo il server GoCD tramite RCE (come dimostrato da gocd_rce_noauth.py), un attaccante ottiene il controllo su ogni fase di tale processo — consentendo l'inserimento di backdoor nei binari, la manomissione degli artefatti o l'esfiltrazione di codice sorgente e credenziali prima ancora che qualsiasi prodotto raggiunga l'utente finale. Lo scenario è analogo all'attacco a SolarWinds (2020), dove l'accesso alla pipeline di build ha portato alla distribuzione di malware a migliaia di clienti.```mermaid flowchart TD ATK(["🕵️ Atacante / Attacker\n(não autenticado / unauthenticated)"])

subgraph EXPLOIT ["Exploração / Exploitation"]
    E1["CVE-2021-43287\nLeitura do cruise_config\n(tokenGenerationKey + agentAutoRegisterKey)"]
    E2["Path Traversal\nLeitura de /etc/go/jetty.xml\ne /proc/self/environ"]
    E3["Registro de agente falso\nFake agent registration"]
    E4["Desserialização Java\n(AspectJWeaver gadget chains)\nSobrescreve jetty.xml + restart"]
    E5["💥 RCE no servidor GoCD\nRCE on GoCD server"]
    E1 --> E2 --> E3 --> E4 --> E5
end

subgraph PIPELINE ["Pipeline CI/CD comprometido / Compromised CI/CD Pipeline"]
    P1["📦 Build de artefatos\nBinary/artifact build"]
    P2["🧪 Execução de testes\nTest execution"]
    P3["📤 Publicação de pacotes\nPackage publication\n(npm, PyPI, Docker Hub...)"]
    P4["🚀 Deploy em produção\nProduction deployment"]
    P1 --> P2 --> P3 --> P4
end

subgraph IMPACT ["Impacto / Impact"]
    I1["🔑 Vazamento de credenciais\nCredential leak\n(tokens, SSH keys, API keys)"]
    I2["🦠 Backdoor em artefatos\nBackdoor in build artifacts"]
    I3["📂 Exfiltração de código-fonte\nSource code exfiltration"]
    I4["☠️ Ataque à cadeia de suprimentos\nSupply chain attack\n(usuários finais afetados / end users impacted)"]
    I1 & I2 & I3 --> I4
end

ATK --> EXPLOIT
E5 -->|"Controle total do runner\nFull runner control"| PIPELINE
P1 -->|"Artefatos envenenados\nPoisoned artifacts"| I2
P3 -->|"Pacotes maliciosos\nMalicious packages"| I4
P4 -->|"Produção comprometida\nCompromised production"| I4
E5 -->|"Leitura de secrets\nSecrets read"| I1
E5 -->|"Acesso ao repositório\nRepository access"| I3
---

## 3. Vulnerabilità / Vulnerabilities

| CVE | Tipo / Type | CVSS 3.1 | CWE | Auth |
|-----|-------------|:---:|-----|:---:|
| **CVE-2021-43287** | Information Disclosure | **7.5 HIGH** | CWE-200 | ❌ Nenhuma / None |
| **CVE-2021-43288** | Stored XSS | **6.1 MEDIUM** | CWE-79 | Agent |
| **CVE-2021-43289** | Path Traversal — PUT | **8.1 HIGH** | CWE-22 | Agent |
| **CVE-2021-43290** | Path Traversal — GET | **8.1 HIGH** | CWE-22 | Agent |

### CVE-2021-43287 — Business Continuity: vazamento sem autenticação / unauthenticated leak

**[PT]** O endpoint `/go/add-on/business-continuity/api/cruise_config` devolve o XML completo de configuração do servidor **sem exigir autenticação**. O XML contém os atributos do elemento `<server>`, incluindo `agentAutoRegisterKey` e `tokenGenerationKey` — as duas chaves necessárias para registrar agentes e assinar requisições autenticadas. Adicionalmente, o parâmetro `pluginName` do endpoint de plugins aceita sequências de path traversal (`../../../../../../`), permitindo leitura de arquivos arbitrários do sistema — como `/proc/self/environ` e `/etc/go/jetty.xml`.

**[EN]** The `/go/add-on/business-continuity/api/cruise_config` endpoint returns the full server configuration XML **without requiring authentication**. The XML contains the `<server>` element attributes, including `agentAutoRegisterKey` and `tokenGenerationKey` — the two keys needed to register agents and sign authenticated requests. Additionally, the `pluginName` parameter of the plugin endpoint accepts path traversal sequences (`../../../../../../`), allowing arbitrary file reads — such as `/proc/self/environ` and `/etc/go/jetty.xml`.
Scarica lo strumento