Uma vulnerabilidade no Vim permitia a execução de código ao abrir um TXT

Vim

Uma nova vulnerabilidade foi corrigida nos editores de texto pré-instalados em várias distribuições Linux foi encontrado nos editores de texto Vim e Neovim (CVE-2019-12735).

O bug encontrado nestes editores permite que os hackers controlem os computadores quando os usuários abrem um arquivo de texto malicioso. O problema se manifesta com a atividade modeline habilitada por padrão (": set modeline"), que permite definir as opções de edição no arquivo que está sendo processado.

O Vim e seu garfo NeoVim continham uma falha que residia nas modelines. Este recurso permite que os usuários especifiquem as dimensões da janela e outras opções personalizadas perto do início ou final de um arquivo de texto.

Este recurso é habilitado por padrão nas versões anteriores ao Vim 8.1.1365 Neovim 0.3.6 e se aplica a todos os tipos de arquivo, incluindo arquivos .txt.

Sobre vulnerabilidade no Vim

Através da Modeline, apenas um número limitado de opções é permitido. SSe uma expressão for especificada como um valor de opção, ela será executada no modo sandbox, que permite que apenas as operações seguras mais simples sejam usadas.

Ao mesmo tempo, o comando ": source" é um dos permitidos, no qual você pode usar o modificador "!" para executar comandos arbitrários do arquivo especificado.

Portanto, para executar o código, é suficiente indicar na linha de modeline uma construção da forma "set foldexpr = execute ('\: source! Some_file'):". No Neovim, a chamada de execução é proibida, mas assert_fails pode ser usado em seu lugar.

Por outro lado, na sandbox, é projetado para evitar efeitos colaterais:

As opções 'foldexpr', 'formatexpr', 'includeexpr', 'indentexpr', 'statusline' e 'foldtext' podem ser avaliadas em uma sandbox. Isso significa que você está protegido contra essas expressões com efeitos colaterais desagradáveis. Isso fornece alguma segurança quando essas opções são definidas a partir de um modelo.

Enquanto os modelos limitam os comandos disponíveis e os executam em um ambiente isolado do sistema operacional, o pesquisador Armin Razmjou observou que o comando: font! contornou esta proteção:

“Ela lê e executa os comandos de um determinado arquivo como se fossem inseridos manualmente, executando-os assim que a sandbox foi retirada”, escreveu a pesquisadora em mensagem publicada no início deste mês. -ci.

Assim, pode-se construir trivialmente uma linha de modelo que executa o código fora da sandbox.

A postagem inclui dois arquivos de texto de prova de princípio, um dos quais ilustra graficamente a ameaça.

Um deles abre um shell reverso no computador que executa o Vim ou NeoVim. A partir daí, os invasores podem lançar os comandos de sua escolha na máquina requisitada.

"Este PoC descreve uma abordagem de ataque real em que um shell reverso é lançado quando o usuário abre o arquivo", escreveu Razmjou. «Para ocultar o ataque, o arquivo será reescrito imediatamente ao ser aberto. Além disso, o PoC usa sequências de escape de terminal para ocultar a linha do modelo quando o conteúdo é impresso com cat. (cat -v revela o conteúdo real). «

A vulnerabilidade de execução de comando requer ativação da funcionalidade de modelagem padrão, como em algumas distribuições Linux por padrão. O defeito é encontrado no Vim antes da versão 8.1.1365 e no Neovim antes da versão 0.3.6.

Este aviso do Banco de Dados Nacional de Vulnerabilidades do Instituto Nacional de Padrões e Tecnologia mostra que as distribuições Debian e Fedora Linux começaram a lançar versões corrigidas.

Nas distribuições, o problema é resolvido em RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux e ALT.

A vulnerabilidade permanece não corrigida no Debian (No modeline do Debian, ele é desabilitado por padrão, então a vulnerabilidade não se manifesta no estado padrão).

A versão mais recente do MacOS continua a usar uma versão vulnerável, embora os ataques só funcionem quando os usuários alteram uma configuração padrão que tem o recurso modelines habilitado.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.