Falhas críticas no Git Open-Source Gogs
9 de Julho de 2024

Quatro falhas de segurança não corrigidas, incluindo três críticas, foram divulgadas no serviço Git Gogs, de código aberto e auto-hospedado, que poderiam permitir que um atacante autenticado violasse instâncias vulneráveis, roubasse ou apagasse código-fonte, e até mesmo instalasse backdoors.

As vulnerabilidades, de acordo com os pesquisadores da SonarSource, Thomas Chauchefoin e Paul Gerste, estão listadas a seguir -

CVE-2024-39930 (pontuação CVSS: 9.9) - Injeção de argumento no servidor SSH integrado
CVE-2024-39931 (pontuação CVSS: 9.9) - Exclusão de arquivos internos
CVE-2024-39932 (pontuação CVSS: 9.9) - Injeção de argumento durante a pré-visualização de mudanças
CVE-2024-39933 (pontuação CVSS: 7.7) - Injeção de argumento ao etiquetar novos lançamentos

A exploração bem-sucedida das três primeiras falhas poderia permitir que um atacante executasse comandos arbitrários no servidor Gogs, enquanto a quarta falha permite aos atacantes ler arquivos arbitrários, como código-fonte e segredos de configuração.

Em outras palavras, ao explorar essas falhas, um ator de ameaças poderia ler o código-fonte na instância, modificar qualquer código, deletar todo o código, atingir hosts internos acessíveis a partir do servidor Gogs, e se passar por outros usuários e ganhar mais privilégios.

Dito isso, todas as quatro vulnerabilidades exigem que o atacante esteja autenticado.

Além disso, a ativação do CVE-2024-39930 requer que o servidor SSH integrado esteja habilitado, a versão do binário env utilizada, e que o ator de ameaça possua uma chave privada SSH válida.

"Se a instância Gogs permitir o registro, o atacante pode simplesmente criar uma conta e registrar sua chave SSH," disseram os pesquisadores.

Caso contrário, teriam que comprometer outra conta ou roubar a chave privada SSH de um usuário.
Instâncias Gogs executadas em Windows não são exploráveis, assim como a imagem Docker.

No entanto, aquelas rodando em Debian e Ubuntu são vulneráveis devido ao fato de o binário env suportar a opção "--split-string".

De acordo com dados disponíveis no Shodan, cerca de 7.300 instâncias Gogs são publicamente acessíveis pela internet, com quase 60% delas localizadas na China, seguidas pelos EUA, Alemanha, Rússia e Hong Kong.

Atualmente não está claro quantos desses servidores expostos são vulneráveis às falhas mencionadas.

A SonarSource disse não ter visibilidade sobre se essas questões estão sendo exploradas no mundo real.

A empresa suíça de cibersegurança também apontou que os mantenedores do projeto "não implementaram correções e pararam de comunicar" após aceitar seu relatório inicial em 28 de abril de 2023.

Na ausência de uma atualização, recomenda-se aos usuários desabilitar o servidor SSH integrado, desativar o registro de usuário para prevenir exploração em massa, e considerar a migração para Gitea.

A SonarSource também lançou um patch que os usuários podem aplicar, mas observou que não foi extensivamente testado.

A divulgação ocorre enquanto a empresa de segurança na nuvem Aqua descobriu que informações sensíveis, como tokens de acesso e senhas, uma vez codificadas de forma fixa, poderiam permanecer expostas permanentemente mesmo após a remoção dos sistemas de gerenciamento de código-fonte (SCM) baseados em Git.

Apelidado de "segredos fantasma", o problema decorre do fato de não poderem ser descobertos por nenhum dos métodos de varredura convencionais – a maioria dos quais procura segredos usando o comando "git clone" – e que certos segredos são acessíveis apenas via "git clone --mirror" ou visualizações em cache das plataformas SCM, destacando os pontos cegos que tais ferramentas de varredura podem perder.

"Commits permanecem acessíveis através de 'visualizações em cache' no SCM," disseram os pesquisadores de segurança Yakir Kadkoda e Ilay Goldman.

Essencialmente, o SCM salva o conteúdo do commit para sempre.

Isso significa que mesmo que um commit contendo um segredo seja removido das versões clonadas e espelhadas do seu repositório, ele ainda pode ser acessado se alguém souber o hash do commit.

Eles podem recuperar o conteúdo do commit através da GUI da plataforma SCM e acessar o segredo vazado."

Publicidade

Aprenda hacking e pentest na prática com esse curso gratuito

Passe por todas as principais fases de um pentest, utilizando cenários, domínios e técnicas reais utilizados no dia a dia de um hacker ético. Conte ainda com certificado e suporte, tudo 100% gratuito. Saiba mais...