Falha no Vim permite invasão do Linux

Falha no Vim permite invasão do Linux

O pesquisador de segurança Armin Razmjou descobriu uma séria vulnerabilidade nos conhecidos editores de texto presentes na maioria das distribuições Linux: Vim e Neovim. Portanto, uma falha no Vim permite invasão do Linux simplesmente abrindo um arquivo no editor.

A vulnerabilidade CVE-2019-12735 tem uma pontuação alta porque permite que um invasor execute comandos no sistema operacional remotamente e assuma o controle dele. De fato, usando um comando, é possível pular a camada de proteção do Vim.

Vim é lendário como um editor que é usado a partir da linha de comando e um dos favoritos dos programadores. Neovim é uma bifurcação que basicamente procura oferecer uma opção hipertexto que resolve muitos dos problemas que alguns têm com o clássico Vim. Ambos estão expostos a essa vulnerabilidade porque lidam com as ‘modelines’ da mesma maneira.

A falha no Vim que permite invasão do Linux está nos modelos

Se um invasor criar um arquivo especial usando o Vim ou o Neovim, bastaria abri-lo em qualquer um dos editores para que ele possa invadir sua distribuição Linux executando comandos arbitrários remotamente.

Esta execução de código via o Vim tem a ver especificamente na maneira com o ‘ modelines ‘. É um recurso que ativado por padrão. Ele oferece ao usuário uma maneira de estabelecer variáveis específicas para um arquivo, mesmo um simples .txt.

Com uma ‘modeline’ você pode aplicar um conjunto de preferências personalizadas perto do começo e fim das linhas de um documento. E embora o Vim use um sandbox para isolar o editor e impedir que ele execute uma ‘modeline’ com expressões inseguras, o pesquisador descobriu que usando o comando “: source!” você pode pular a caixa de proteção.

Isso permite ler e executar os comandos de um determinado arquivo como se ele tivesse sido escrito manualmente. Assim, eles podem ser executados depois que a sandbox for deixada.

Razmjou publicou duas provas de conceito em sua página do GitHub. Uma delas oferece um exemplo de um ataque da vida real. Nela, o invasor consegue executar um shell reverso imediatamente quando o usuário abre o arquivo. Assim, o invasor consegue executar seu código para assumir o controle da máquina e também estabelece um conexão

Recomenda-se aplicar as correções para o Vim na versão 8.1.1365 e para o Neovim na versão v0.3.6. Além disso, recomenda-se desabilitar as ‘modelines’ no vimrc. Então, para isso, use o plugin securemodelines ou desative modelineexprpara não permitir expressões nas ‘modelines’.

Fonte

Acesse a versão completa
Sair da versão mobile