# CVE-2021-22175 - Execução Remota de Código no GitLab CE/EE
> [!critical] CVSS 9.8 - CISA KEV - RCE Não Autenticado
> Vulnerabilidade crítica de execução remota de código no GitLab CE/EE permite que atacantes não autenticados comprometam completamente a instância. Exploração ativa confirmada pelo CISA KEV.
## Visão Geral
O **CVE-2021-22175** é uma vulnerabilidade crítica de **Execução Remota de Código (RCE)** não autenticada no **[[GitLab]] CE/EE**, a plataforma de DevOps mais amplamente utilizada em organizações de desenvolvimento de software. A falha reside no mecanismo de importação de projetos do GitLab, específicamente no processamento de exports do GitHub, onde a deserialização insegura de dados permite que um atacante remoto execute comandos arbitrários no servidor sem qualquer autenticação prévia.
A gravidade desta vulnerabilidade é excepcional: um atacante com acesso de rede à instância GitLab pode assumir controle total do servidor, acessando todos os repositórios de código-fonte, secrets de CI/CD, tokens de API, credenciais e pipelines de implantação da organização. Em ambientes corporativos, o comprometimento de uma instância GitLab frequentemente equivale ao comprometimento completo da cadeia de suprimentos de software da organização, possibilitando a inserção de código malicioso em todos os projetos hospedados.
A adição ao catálogo CISA Known Exploited Vulnerabilities (KEV) em janeiro de 2023 confirma que a vulnerabilidade foi e continua sendo explorada ativamente por atores de ameaça. O GitLab é amplamente utilizado por empresas de tecnologia, startups e times de engenharia no Brasil e na América Latina, tornando esta CVE especialmente relevante para organizações da região com instâncias self-hosted expostas à internet.
## Produtos Afetados
| Produto | Versão Afetada | Versão Corrigida |
|---------|---------------|-----------------|
| GitLab CE | < 13.8.6 | 13.8.6+ |
| GitLab CE | < 13.9.4 | 13.9.4+ |
| GitLab CE | < 13.10.1 | 13.10.1+ |
| GitLab EE | < 13.8.6 | 13.8.6+ |
| GitLab EE | < 13.9.4 | 13.9.4+ |
| GitLab EE | < 13.10.1 | 13.10.1+ |
## Detalhes Técnicos
A vulnerabilidade explora o mecanismo de importação de projetos do GitLab:
1. **Ponto de entrada:** Endpoint de importação de projetos via exportações do GitHub (feature nativa do GitLab)
2. **Deserialização insegura:** O GitLab processa dados YAML de projetos importados sem sanitização adequada
3. **Gadget chain:** Objetos Ruby maliciosos podem ser construídos para acionar execução de código durante deserialização
4. **Sem autenticação:** A funcionalidade de importação é acessível sem autenticação válida nas versões afetadas
5. **Execução como gitlab-www:** Comandos são executados no contexto do processo GitLab (geralmente com privilégios elevados)
**Vetor de ataque:** Rede (AV:N) · Complexidade baixa (AC:L) · Sem privilégios necessários (PR:N) · Sem interação do usuário (UI:N) · Impacto total em Confidencialidade, Integridade e Disponibilidade
## Exploração
A vulnerabilidade tem exploits públicos disponíveis no Exploit-DB e GitHub. O processo de exploração consiste em:
- Construir um arquivo de exportação GitLab contendo payload YAML com gadget chain Ruby
- Submeter o arquivo ao endpoint de importação da instância alvo
- Receber shell reverso ou executar comandos no servidor alvo
## Mitigação
**Ação imediata:**
- Atualizar GitLab para versão 13.8.6, 13.9.4 ou 13.10.1 (conforme branch em uso)
- Instâncias GitLab.com gerenciadas pela GitLab já foram corrigidas automaticamente
**Medidas de contenção:**
- Restringir acesso à instância GitLab via firewall a redes internas somente
- Desabilitar a funcionalidade de importação de projetos via GitHub se não utilizada
- Implementar autenticação obrigatória para todas as operações de importação/exportação
- Monitorar logs de acesso ao endpoint `/projects/import` para tentativas suspeitas
- Auditar todos os repositórios em busca de commits não autorizados após possível comprometimento
- Rotacionar todos os secrets, tokens e credenciais armazenados no GitLab se suspeitar de comprometimento
> [!latam] Relevância para Brasil e América Latina
> GitLab é amplamente adotado por empresas de tecnologia, fintechs e startups na América Latina, especialmente no Brasil, México e Argentina. Instâncias self-hosted GitLab são comuns em empresas que preferem controle sobre dados de código-fonte. O comprometimento de instâncias GitLab em empresas LATAM pode expor código proprietário, credenciais de cloud (AWS, GCP, Azure), tokens de deployment e pipelines de CI/CD - dados de alto valor para grupos de espionagem industrial e ransomware.
## Notas Relacionadas
**TTPs relacionadas:** [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]] · [[t1195-002-compromise-software-supply-chain|T1195.002 - Compromise Software Supply Chain]] · [[t1059-ruby|T1059]] · [[t1552-unsecured-credentials|T1552 - Unsecured Credentials]]
**Setores em risco:** [[technology]] · [[financial]] · [[government]]
**CVEs relacionados:** [[cve-2021-27101|CVE-2021-27101]] · [[cve-2019-19006|CVE-2019-19006]]
**Tecnologia:** [[gitlab]] · [[devops-security]] · [[supply-chain-security]]
## Referências
- [NVD - CVE-2021-22175](https://nvd.nist.gov/vuln/detail/CVE-2021-22175)
- [GitLab Security Advisory](https://about.gitlab.com/releases/2021/03/17/critical-security-release-gitlab-13-10-1-released/)
- [CISA KEV Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
- [Exploit-DB](https://www.exploit-db.com/search?cve=CVE-2021-22175)