Une vulnérabilité critique découverte sur les éditeurs de textes Vim et Neovim
Date de publication :
Le chercheur en sécurité informatique Armin Razmjou a récemment découvert une nouvelle vulnérabilité critique dans deux logiciels pour Linux : Vim et Neovim.
Ces deux programmes sont des éditeurs de textes très utilisés sur Linux permettant de créer, d'éditer ou encore de visualiser des fichiers au format texte.
Ainsi, à partir d’un fichier spécialement conçu par un attaquant, l’utilisateur peut être ainsi amené à exécuter des commandes à son insu dès l'ouverture du fichier et permettre à l'attaquant de prendre contrôle à distance du système.
La vulnérabilité est critique et peu complexe à mettre en œuvre, cependant son exploitation nécessite de satisfaire une condition : il faut que l’utilisateur visualise le contenu du fichier sur Vim ou Neovim.
Détails techniques :
- CVE2019-12735 [CVSSv3 8.6] : La vulnérabilité est due à la fonctionnalité “modeline” de Vim/Neovim. Cette fonctionnalité permet de définir des variables d’environnement pour le fichier (par exemple, définir la largeur maximale du texte affiché).
- Un défaut de conception permet l'exécution arbitraire des commandes systèmes via cette fonctionnalité aux dépens de l’utilisateur avec le même niveau de privilège que l'utilisateur ayant ouvert le fichier avec Vim/Neovim.
- Il est ainsi possible avec un fichier texte d'environ 75 caractères de, par exemple:
- Supprimer ou récupérer certains fichiers ;
- Prendre possession ou bloquer le système (si l'utilisateur est root).
Informations
La faille est activement exploitée :
Un correctif existe :
Une mesure de contournement existe :
Risques
- Exécution de code arbitraire.
Criticité
- Score CVSS : 8.60 (Score de la vulnérabilité la plus critique)
Existence d’un code d’exploitation de la vulnérabilité
- Un code d'exploitation de la vulnérabilité ainsi qu'une démonstration de faisabilité sont disponibles ici.
Composants & versions vulnérables
- Toutes les versions de Vim antérieures à la 8.1.1365 ;
- Toutes les versions de Neovim anterireures à la 0.3.6.
CVE
- CVE2019-12735
Solutions ou recommandations
Mise en place de correctif de sécurité
Solution de contournement.
- En outre, le chercheur a également recommandé aux utilisateurs de :
- Désactiver la fonction modelines ;
- Désactiver "modelineexpr" pour interdire les expressions dans les modelines ;
- Utiliser le plugin "securemodelines", une alternative sécurisée aux modèles Vim.