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 vulnerability in VIM v.8.1.2135 allows a remote attacker to execute arbitrary code via the ope...
Heap-based Buffer Overflow in GitHub repository vim/vim prior to 9.0.0765.
Heap-based Buffer Overflow in vim/vim prior to 8.2.
An integer overflow at a u_read_undo memory allocation site would occur for vim before patch 8.0.0377, if it d...
An integer overflow at an unserialize_uep memory allocation site would occur for vim before patch 8.0.0378, if...