Vim - CVE-2026-34982

Date de publication :

Il s'agit d'une vulnérabilité dans le mécanisme de modeline de Vim.

Vim est un éditeur de texte en mode terminal, successeur de vi, installé par défaut sur la quasi-totalité des distributions Linux et macOS. Il est utilisé par les administrateurs systèmes et les développeurs pour l'édition de fichiers de configuration, de code source et de scripts, directement en ligne de commande.

Les options complete, guitabtooltip et printheader sont dépourvues du flag de sécurité P_MLE, ce qui leur permet de contourner le sandbox de Vim à l'ouverture d'un fichier. La fonction mapset() est de plus dépourvue d'un appel check_secure(), permettant d'enregistrer des mappings de touches dont l'exécution intervient après la sortie du sandbox.

Elle permet, à l'ouverture d'un fichier forgé, l'exécution de commandes OS arbitraires avec les privilèges de l'utilisateur courant.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Oui

Risques

Exécution de code arbitraire (à distance)

Exploitation

La vulnérabilité exploitée est du type
CWE-78 : Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Faible
•   Privilèges nécessaires pour réaliser l'attaque : Aucun
•   Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Oui
•   L'exploitation de la faille permet d'obtenir des droits privilégiés : Non

Preuve de concept
Actuellement, aucune preuve de concept n'est disponible en sources ouvertes.

Systèmes ou composants affectés

•   Vim versions antérieures à 9.2.0276
•   Debian Bullseye (11) vim versions 2:8.2.2434-3+deb11u3 et antérieures (non corrigé)
•   Debian Bookworm (12) vim versions 2:9.0.1378-2+deb12u2 et antérieures (non corrigé)
•   Debian Trixie vim versions 2:9.1.1230-2 et antérieures (non corrigé)
•   Debian Forky / Sid vim versions 2:9.2.0218-1 et antérieures (non corrigé)

Contournement provisoire

Désactiver les modelines en ajoutant set nomodeline dans le fichier de configuration ~/.vimrc ou /etc/vim/vimrc — cette mesure supprime le vecteur d'exploitation principal.

Solutions ou recommandations

•   Vim upstream : versions 9.2.0276 et supérieures (commit 75661a66a1db, disponible sur le dépôt GitHub officiel)
•   Debian (toutes branches) : aucun paquet corrigé disponible au moment de la publication - le Debian Security Tracker indique le statut "unfixed" pour l'ensemble des branches affectées