PT-2026-51629 · Gogs · Gogs

Publicado

2026-06-23

·

Atualizado

2026-06-23

·

CVE-2026-52811

CVSS v4.0

9.0

Crítica

VetorAV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Nome do Software Vulnerável e Versões Afetadas Gogs versões 0.14.0 até 0.14.2
Description Existe um problema onde a função UploadRepoFiles verifica links simbólicos apenas na folha do destino do upload usando osx.IsSymlink(), diferentemente de outras funções que validam cada componente do caminho. Um invasor com acesso de escrita ao repositório pode explorar isso realizando um upload multipart com um nome de arquivo contendo uma barra invertida literal. No Linux e macOS, o filepath.Base preserva barras invertidas, que são posteriormente convertidas em barras normais por pathx.Clean().
Isso permite que o invasor redirecione a operação de escrita através de um link simbólico de diretório previamente commitado. Como o iox.CopyFile() utiliza os.Create() sem a flag O NOFOLLOW, o kernel segue o link simbólico pai, permitindo que o invasor escreva bytes arbitrários em qualquer local onde o UID do Gogs tenha permissões de acesso. Alvos potenciais incluem ~git/.ssh/authorized keys para obter acesso SSH ou <repo>.git/hooks/post-receive para alcançar a execução remota de código (RCE) no próximo push. Versões para Windows não são afetadas devido ao tratamento diferente de separadores de caminho e configurações padrão do git.
Recommendations Para as versões 0.14.0 até 0.14.2:
  • Substitua a verificação de folha em repo editor.go pela função hasSymlinkInPath() para validar todo o caminho.
  • Valide o opts.TreePath antes de chamar os.MkdirAll() para evitar a criação de diretórios fora do repositório.
  • Atualize o iox.CopyFile() para usar a flag O NOFOLLOW ao abrir arquivos para evitar que links simbólicos sejam seguidos na camada de syscall.
  • Modifique o database.NewUpload para rejeitar qualquer name que contenha / ou `` após a chamada do pathx.Clean().
  • Como mitigação temporária, restrinja o acesso de escrita aos repositórios apenas a usuários confiáveis.

Correção

Link Following

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-52811
GHSA-89MR-XQFV-758M

Produtos afetados

Gogs