Foram lançadas correções para os lançamentos da sistema de gerenciamento de código fonte distribuído Git 2.40.1, 2.39.3, 2.38.5, 2.37.7, 2.36.6, 2.35.8, 2.34.8, 2.33.8, 2.32.7, 2.31.8 e 2.30.9, nas quais foram corrigidas cinco vulnerabilidades. É possível acompanhar o lançamento de atualizações nos pacotes das distribuições nas páginas do Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Como medidas preventivas contra as vulnerabilidades, recomenda-se evitar o uso do comando "git apply —reject" ao trabalhar com patches externos não verificados e verificar o conteúdo do $GIT_DIR/config antes de executar os comandos "git submodule deinit", "git config —rename-section" e "git config —remove-section" ao trabalhar com repositórios não confiáveis.
A vulnerabilidade CVE-2023-29007 permite a substituição de configurações no arquivo de configuração $GIT_DIR/config, que podem ser usadas para execução de código no sistema através da especificação de caminhos para arquivos executáveis nas diretrizes core.pager, core.editor e core.sshCommand. A vulnerabilidade é causada por um erro lógico, que faz com que valores de configuração excessivamente longos possam ser interpretados como o início de uma nova seção ao realizar operações de renomeação ou exclusão de seção do arquivo de configuração. Na prática, valores exploratórios da vulnerabilidade podem ser obtidos através da especificação de URLs muito longos de submódulos, que são salvos no arquivo $GIT_DIR/config durante a inicialização. Esses URLs podem ser interpretados como novas configurações ao tentar removê-los através de "git submodule deinit".
A vulnerabilidade CVE-2023-25652 permite a sobrescrição do conteúdo de arquivos fora da árvore de trabalho ao processar patches especialmente formatados com o comando "git apply —reject". Ao tentar aplicar um patch malicioso que tenta gravar em um arquivo através de um link simbólico, a operação será rejeitada. No Git 2.39.1, a proteção contra manipulações através de links simbólicos foi aprimorada com a bloqueio de patches que criam links simbólicos e tentam realizar gravações através deles. A essência da vulnerabilidade discutida é que o Git não reconheceu que o usuário poderia executar o comando "git apply —reject" para gravar partes rejeitadas de um patch como arquivos com a extensão ".rej", e um atacante pode explorar essa possibilidade para gravar conteúdo em um diretório arbitrário, conforme permitido pelas atuais permissões de acesso.
Além disso, foram corrigidas três vulnerabilidades que se manifestam apenas na plataforma Windows: CVE-2023-29012 (busca do executável doskey.exe no diretório de trabalho do repositório ao executar o comando «Git CMD», permitindo a execução de código próprio no sistema do usuário), CVE-2023-25815 (overflow de buffer ao processar arquivos de localização especialmente formatados no gettext) e CVE-2023-29011 (possibilidade de substituição do arquivo connect.exe ao trabalhar através do SOCKS5).
Fonte: opennet.ru
