Duas vulnerabilidades no Git que podem levar à execução remota de código

Foram lançadas atualizações corretivas para os sistemas de controle de versão distribuído Git 2.39.1, 2.38.3, 2.37.5, 2.36.4, 2.35.6, 2.34.6, 2.33.6, 2.32.5, 2.31.6 e 2.30.7, nas quais foram corrigidas duas vulnerabilidades que permitem a execução de código na máquina do usuário ao utilizar o comando "git archive" e trabalhar com repositórios externos não confiáveis. As vulnerabilidades foram causadas por erros na formatação de commits e na interpretação do arquivo ".gitattributes", que ao processar repositórios externos, podem resultar em gravação em áreas de memória além do heap e leitura de dados arbitrários da memória.

Ambas as vulnerabilidades foram identificadas durante uma auditoria de segurança no código-base do Git, realizada pela empresa X41 a pedido do fundo OSTIF (Open Source Technology Improvement Fund), criado com o objetivo de aumentar a segurança de projetos de código aberto. Além dos dois problemas críticos mencionados, a auditoria também encontrou uma vulnerabilidade grave, uma de médio risco e quatro problemas considerados não perigosos. Também foram dadas 27 recomendações para melhorar a segurança do código-base.

  • CVE-2022-41903: estouro de inteiro na formatação das informações dos commits, ocorrendo ao processar grandes valores de deslocamento em operadores de preenchimento, como "%<(", "%(', "%>>(' e "%><('). O estouro de inteiro ocorre na função format_and_pad_commit() devido ao uso do tipo int para a variável size_t, que na chamada memcpy() participa da determinação do tamanho do bloco copiado.

    A vulnerabilidade se manifesta tanto durante a chamada direta com parâmetros de formatação especialmente elaborados (por exemplo, ao executar "git log --format=..."), quanto na aplicação indireta da formatação ao executar o comando "git archive" em um repositório sob controle do atacante. No segundo caso, os modificadores de formatação são definidos através do parâmetro export-subst no arquivo ".gitattributes", que pode ser colocado pelo atacante em seu próprio repositório. O problema pode ser explorado para leitura e gravação em áreas arbitrárias do heap, levando à execução de código malicioso ao trabalhar com repositórios não verificados.

  • CVE-2022-23521: estouros de inteiros ao processar o conteúdo de arquivos ".gitattributes" no repositório, que se manifestam ao lidar com um número muito grande de padrões de caminhos de arquivos ou muitos atributos com um único padrão, além de processar nomes de atributos muito grandes. O problema pode ser usado para ler e escrever áreas arbitrárias na memória heap e levar à execução de código malicioso ao trabalhar com repositórios não verificados, onde um atacante pode colocar um arquivo .gitattributes malicioso e garantir que ele seja incluído no índice.

A publicação de atualizações de pacotes nas distribuições pode ser acompanhada nas páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD. Para reduzir o risco de ataques, em caso de impossibilidade de instalar atualizações prontamente, recomenda-se evitar o uso de repositórios não confiáveis e a utilização do comando "git archive". É importante lembrar que o comando "git archive" pode ser executado implicitamente, por exemplo, a partir do git daemon. Para desativar a execução do "git archive" no git daemon, deve-se alterar a configuração daemon.uploadArch com o comando "git config --global daemon.uploadArch false".

Além disso, também podemos destacar outra vulnerabilidade (CVE-2022-41953) no produto Git for Windows, que permite a execução de código ao clonar repositórios externos não verificados através da interface gráfica. O problema é causado pelo fato de que o Git GUI para Windows executa automaticamente alguns comandos de pós-processamento, como a execução do programa de verificação ortográfica após a operação "checkout", sendo que os caminhos de busca do arquivo de verificação ortográfica abrangem também a árvore de trabalho clonada (o ataque consiste em adicionar a verificação ortográfica à árvore de trabalho do repositório).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster