CVE-2026-59858
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
W Vimie przed wersją 9.2.0735 skrypt uzupełniania C (ccomplete.vim) nieprawidłowo interpoluje pole typeref: lub typename: z pliku znaczników do wzorca :vimgrep wykonywanego przez :execute. Umożliwia to wstrzyknięcie dowolnego polecenia Ex poprzez specjalnie spreparowany plik .c i wywołanie uzupełniania C.
Ocena ryzyka
Atakujący może zdalnie wykonać dowolne polecenie w kontekście użytkownika edytującego, otwierając złośliwy plik źródłowy C z odpowiednio spreparowanym plikiem znaczników. Prowadzi to do pełnego przejęcia kontroli nad sesją edytora i potencjalnie całym systemem.
Rekomendacja
Należy natychmiast zaktualizować Vima do wersji 9.2.0735 lub nowszej. Jeśli aktualizacja nie jest możliwa, tymczasowo wyłącz funkcję uzupełniania C (omni-completion) lub ogranicz dostęp do nieznanych plików znaczników.
Inne podatności w Vim
Zobacz wszystkie- CVE-2026-73073Wysokie
Vim przed wersją 9.2.0845 ma podatność w funkcji StructMembers() w runtime/autoload/ccomplete.vim, która konstruuje i wykonuje polecenie vimgrep z niewystarczająco escapowaną wartością typeref: lub typename: z pliku tags, co pozwala na wykonanie dowolnych poleceń Ex i systemu operacyjnego, gdy użytkownik wywoła autouzupełnianie C (CTRL-X CTRL-O) na dostępie do składowej, której typ jest rozwiązywany z tego pliku tags. Problem naprawiono w wersji 9.2.0845.
- CVE-2026-73078Wysokie
Vim, edytor tekstu wiersza poleceń, przed wersją 9.2.0840 ma podatność w runtime/plugin/netrwPlugin.vim i runtime/pack/dist/opt/netrw/autoload/netrw.vim, gdzie konstruowane są wpisy menu Bookmarks, History i Targets przez interpolację kontrolowanych przez atakującego ścieżek katalogów do wykonywanych poleceń :menu. Funkcje s:NetrwBookmarkMenu(), s:NetrwTgtMenu(), g:netrw_menu_escape, EX_TRLBAR i netrw#MakeTgt() nie neutralizują separatora poleceń | ani pojedynczych cudzysłowów w pięciu miejscach, co pozwala spreparowanej ścieżce przeglądanej lub dodanej do zakładek w GUI Vim na wykonanie dowolnych poleceń Ex i systemu operacyjnego. Problem naprawiono w wersji 9.2.0840.
- CVE-2026-73076Wysokie
W Vimie przed wersją 9.2.0847 plik runtime/autoload/vimball.vim pozwala spreparowanemu członkowi vimball o nazwie .VimballRecord nadpisać rekord instalacji poleceniami wybranymi przez atakującego. Gdy później funkcja vimball#RmVimball() przetwarza pasujący wpis rekordu, zapisane polecenia Ex, w tym polecenia systemu operacyjnego wywoływane przez :!, wykonują się z uprawnieniami użytkownika uruchamiającego Vima. Problem naprawiono w wersji 9.2.0847.
- CVE-2026-73071Niskie
Vim, otwartoźródłowy edytor tekstu, zawiera podatność w funkcji json_decode_item() w src/json.c, która może zachować nieaktualny wskaźnik po wywołaniu json_decode_string(), co prowadzi do odczytu zwolnionej pamięci w przypadku nieprawidłowego ciągu JSON obejmującego wiele buforów. Problem dotyczy wersji od 9.2.0511 do 9.2.0844 i został naprawiony w wersji 9.2.0844.
- CVE-2026-73070Średnie
Vim, edytor tekstu z linii poleceń, przed wersją 9.2.0842 zawiera podatność w backendzie serwera socket w src/socketserver.c, który akceptuje nieograniczoną liczbę połączeń klientów, co powoduje przepełnienie struktur fd_set w src/channel.c i tablic struct pollfd w src/os_unix.c. Lokalny proces mogący połączyć się z socketem serwera może uszkodzić pamięć stosu lub zakończyć działanie serwera Vim. Problem naprawiono w wersji 9.2.0842.
- CVE-2017-11109Wysokie
Vim 8.0 pozwala atakującym na spowodowanie odmowy usługi (nieważne zwolnienie pamięci) lub potencjalnie innego nieokreślonego wpływu poprzez spreparowany plik źródłowy (znany jako -S).
- CVE-2016-1248Wysokie
Vim przed poprawką 8.0.0056 nieprawidłowo waliduje wartości dla opcji 'filetype', 'syntax' i 'keymap', co może prowadzić do wykonania dowolnego kodu po otwarciu pliku z odpowiednio skonstruowanym modelem.
- CVE-2024-47814Niskie
W edytorze Vim przed wersją 9.1.0764 wykryto błąd use-after-free. Podczas zamykania bufora widocznego w oknie, autokomenda BufWinLeave może ponownie otworzyć ten sam bufor w nowym oknie, prowadząc do użycia po zwolnieniu.
- CVE-2024-43802Średnie
Vim to ulepszona wersja edytora tekstu vi z systemu Unix. Podczas opróżniania bufora typeahead, Vim przesuwa bieżącą pozycję w buforze, ale nie sprawdza, czy jest wystarczająco dużo miejsca na kolejne znaki. Może to prowadzić do przesunięcia pozycji tb_off poza bufor.
- CVE-2026-34714Krytyczne
Podatność w Vimie przed wersją 9.2.0272 umożliwia natychmiastowe wykonanie kodu po otwarciu spreparowanego pliku w domyślnej konfiguracji. Problem wynika z wstrzyknięcia %{expr} w tabpanel, które nie ma ustawionej flagi P_MLE.
Oryginalny opis (angielski, źródło NVD)
Vim is an open source, command line text editor. Prior to 9.2.0735, the C omni-completion script in runtime/autoload/ccomplete.vim interpolates the typeref: or typename: extension field of a tags entry, without escaping, into a :vimgrep pattern that is run through :execute. Because :vimgrep honors the bar as a command separator, a crafted tag field can close the search pattern and append an arbitrary Ex command; opening a hostile .c file whose project tags file contains such an entry and invoking C omni-completion runs that command as the editing user. This issue is fixed in version 9.2.0735.

