PT-2026-50159 · Gogs · Gogs

CVE-2026-52797

·

Publicado

2026-06-16

·

Atualizado

2026-07-30

CVSS v3.1

8.5

Alta

VetorAV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:H
Nome do Software Vulnerável e Versões Afetadas Gogs versões anteriores a 0.14.0
Description Um usuário autorizado pode manipular o valor passado para o comando git diff para ignorar o diretório de destino e gravar o resultado de uma comparação em um caminho arbitrário. Este problema de path traversal ocorre porque a aplicação não filtra adequadamente a entrada fornecida pelo usuário antes de passá-la para um comando do sistema. Especificamente, o endpoint POST '/:user/:repo/ preview/:branch/:path to file' processa a variável :path to file usando a função DiffPreviewPost(), que subsequentemente chama a GetDiffPreview(). Ao utilizar sequências específicas de caracteres que exploram o comportamento da função path.Clean, um invasor pode burlar as verificações de validação e injetar o parâmetro --output no comando git diff. Isso permite que o invasor sobrescreva arquivos críticos, como o banco de dados gogs.db ou o arquivo de configuração app.ini, podendo levar a uma negação de serviço (DoS).
Recommendations Atualizar para a versão 0.14.0. Na função DiffPreviewPost(), filtre a variável treePath e passe a variável entry em seu lugar. Utilize a função pathutil.Clean para filtrar a variável treePath em vez da função path.Clean da biblioteca padrão do Go.

Exploit

Correção

Path traversal

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-52797
GHSA-PM6V-2H4W-4RP2
GO-2026-5545
OPENSUSE-SU-2026:21483-1

Produtos afetados

Gogs