¿Por qué es peligroso el set exrc?

10

He visto set exrcmencionar en varios lugares el uso de .vimrcarchivos por directorio , pero cada vez que se menciona ha sido con una fuerte advertencia de no usarlo realmente porque es peligroso. También me he encontrado con lo set secureque se supone que corrige parte del peligro de heredar set exrc, pero incluso con eso el consenso parece no ser útil set exrc.

He escuchado fragmentos de por qué, pero ¿cuáles son exactamente los peligros de usar set exrc, con o sin set secure?

Ronquidos
fuente

Respuestas:

13

Debido a que le está diciendo a vim que ejecute algunos comandos desde un archivo sobre el que no tiene control o alguien más podría haber escrito. Digamos que tomas algo de github, y en el fondo del árbol hay un .vimrc. Si vim algo en ese directorio y tiene set exrc, le está diciendo a vim que ejecute los comandos en el .vimrc que obtuvo de github. ¿Confía completamente en quien creó ese archivo? Porque estás dejando que vim ejecute los comandos que pongan en ese archivo. O digamos que está en una máquina utilizada regularmente por varias personas (todavía existen :-)), y alguien le pide que vea algo en su directorio de inicio (o / tmp, o en cualquier lugar en el que puedan escribir). Cd allí, es un archivo de texto, entonces haces un vim file. Conset exrc, también le está diciendo a vim que ejecute los comandos en .vimrc en ese directorio. ¿Confía completamente en ese usuario, o en un directorio de escritura mundial como / tmp, cada usuario que puede iniciar sesión en esa máquina?

set securemitiga un poco el problema al limitar algunas cosas que se pueden hacer en un .vimrc, pero si el .vimrc por directorio puede ser de su propiedad (como en el ejemplo de github, o en una máquina multiusuario donde algunos usuarios puede ignorar los archivos), set securese ignora, por lo que aún tiene los mismos problemas.

blm
fuente