Vim w wersjach przed 9.2.0272 jest podatny na command injection poprzez wyrażenia %{expr} w funkcji tabpanel, która nie posiada flagi P_MLE. Podatność jest szczególnie groźna, ponieważ do jej wykorzystania wystarczy otwarcie spreparowanego pliku — bez żadnej dodatkowej interakcji użytkownika.
▸ Pokaż oryginał (EN)
Vim before 9.2.0272 allows code execution that happens immediately upon opening a crafted file in the default configuration, because %{expr} injection occurs with tabpanel lacking P_MLE.
Atakujący przygotowuje specjalnie spreparowany plik, który po otwarciu w Vim natychmiast wykonuje osadzony kod. Mechanizm polega na wstrzyknięciu wyrażenia przez sekwencję %{expr} w konfiguracji tabpanel. Brakująca flaga P_MLE oznacza, że opcja ta nie jest ograniczona do trybu wiersza poleceń, co pozwala na wykonanie dowolnych wyrażeń w domyślnej konfiguracji edytora.
Atakujący może wykonać dowolny kod na systemie ofiary (RCE) w momencie otwarcia pliku, potencjalnie przejmując kontrolę nad systemem z uprawnieniami procesu Vim. Ze względu na zakres wpływu (Scope: Changed) skutki mogą wykraczać poza sam proces edytora.
Należy zaktualizować Vim do wersji 9.2.0272 lub nowszej. Poprawka dostępna jest w oficjalnym repozytorium GitHub (tag v9.2.0272, commit 664701eb7576edb7c7c7d9f2d600815ec1f43459). Do czasu aktualizacji zaleca się zachowanie ostrożności przy otwieraniu plików z niezaufanych źródeł.
Vim w wersjach przed 9.2.0272
Podatność zgłoszona na liście oss-security w dniu publikacji CVE (2026-03-30). Szczegóły dostępne w GitHub Security Advisory GHSA-2gmj-rpqf-pxvh.
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:LVim
APPVim9.1.1390 – 9.2.0272 (bez)
Powiązane podatności
Buffer Overflow w VIM 8.1.2135 umożliwiający zdalne wykonanie kodu
Przepełnienie bufora na stercie (heap buffer overflow) w edytorze Vim
Heap-based Buffer Overflow w Vim — przepełnienie sterty przed wersją 8.2
Integer overflow w Vim podczas odczytu uszkodzonego pliku undo
Przepełnienie liczby całkowitej w Vim przy odczycie uszkodzonego pliku undo