Por que set exrc é perigoso?

10

Eu já vi set exrcmencionado em vários lugares para usar .vimrcarquivos por diretório , mas toda vez que isso é mencionado, é muito recomendável que você não o use porque é perigoso. Também me deparei com o set secureque deve corrigir parte do perigo herdado de set exrc, mas mesmo com isso o consenso parece não ser usado set exrc.

Já ouvi alguns trechos do porquê, mas quais são exatamente os perigos do uso set exrc, com ou sem set secure?

SnoringFrog
fonte

Respostas:

13

Como você está dizendo ao vim para executar alguns comandos de um arquivo, você pode não ter controle ou alguém poderia ter escrito. Digamos que você pegue algo no github e, no fundo da árvore, exista um .vimrc. Se você vim algo nesse diretório e o possui set exrc, está dizendo ao vim para executar os comandos no .vimrc que você obteve no github. Você confia completamente em quem criou esse arquivo? Porque você está deixando o vim executar quaisquer comandos que eles colocarem nesse arquivo. Ou diga que você está em uma máquina usada regularmente por várias pessoas (elas ainda existem :-)) e alguém pede para você procurar algo em seu diretório pessoal (ou / tmp, ou em qualquer lugar em que possam escrever). Você cd lá, é um arquivo de texto, então você faz um vim file. Comset exrc, você também está dizendo ao vim para executar os comandos em .vimrc nesse diretório. Você confia completamente nesse usuário, ou em um diretório gravável mundial como / tmp, em todos os usuários que podem efetuar login nessa máquina?

set secureatenua um pouco o problema limitando algumas coisas que podem ser feitas em um .vimrc, mas se o .vimrc por diretório puder pertencer a você (como no exemplo do github, ou em uma máquina multiusuário, na qual alguns usuários pode chown arquivos para você), set secureé ignorado, então você ainda tem os mesmos problemas.

blm
fonte