Pourquoi Set Exrc est-il dangereux?

10

J'ai vu set exrcmentionné à divers endroits pour utiliser des .vimrcfichiers par répertoire , mais chaque fois que cela a été mentionné, il a été fortement recommandé de ne pas l'utiliser réellement parce que c'est dangereux. Je suis également tombé sur set securece qui est censé corriger une partie du danger héréditaire set exrc, mais même avec cela, le consensus semble ne pas être utilisé set exrc.

J'ai entendu des morceaux de pourquoi, mais quels sont exactement les dangers de l'utilisation set exrc, avec ou sans set secure?

SnoringFrog
la source

Réponses:

13

Parce que vous dites à vim d'exécuter certaines commandes à partir d'un fichier sur lequel vous n'avez peut-être aucun contrôle ou que quelqu'un d'autre aurait pu écrire. Disons que vous prenez quelque chose dans github, et au fond de l'arbre il y a un .vimrc. Si vous vim quelque chose dans ce répertoire et avez set exrc, vous dites à vim d'exécuter les commandes dans le .vimrc que vous avez obtenu de github. Faites-vous entièrement confiance à la personne qui a créé ce fichier? Parce que vous laissez vim exécuter toutes les commandes qu'il place dans ce fichier. Ou dites que vous êtes sur une machine régulièrement utilisée par plusieurs personnes (ils existent toujours :-)), et que quelqu'un vous demande de regarder quelque chose dans son répertoire personnel (ou / tmp, ou n'importe quel endroit où ils peuvent écrire). Vous cd là-bas, c'est un fichier texte, donc vous faites un vim file. Avecset exrc, vous dites également à vim d'exécuter les commandes dans .vimrc dans ce répertoire. Faites-vous entièrement confiance à cet utilisateur, ou dans un répertoire accessible en écriture comme / tmp, à chaque utilisateur qui peut se connecter à cette machine?

set secureatténue quelque peu le problème en limitant certaines choses qui peuvent être effectuées dans un .vimrc, mais si le .vimrc par répertoire peut être créé pour vous appartenir (comme dans l'exemple github, ou sur une machine multi-utilisateurs où certains utilisateurs peut vous montrer des fichiers), set secureest ignoré, vous avez donc toujours les mêmes problèmes.

blm
la source