CVE-2026-45130
ŚrednieCVSS 6.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
W edytorze Vim przed wersją 9.2.0450 występuje przepełnienie sterty w funkcji read_compound() w pliku src/spellfile.c podczas ładowania spreparowanego pliku słownika (.spl) z aktywnym kodowaniem UTF-8. Pole długości w sekcji związków pliku słownika powoduje przepełnienie 32-bitowego mnożenia liczb całkowitych ze znakiem, co prowadzi do alokacji małego bufora dla pętli zapisu wykonującej wiele iteracji, przepełniając stertę. Ponieważ opcję 'spelllang' można ustawić z modeliny, modelina w pliku tekstowym może wywołać ładowanie pliku słownika, jeśli złośliwy plik .spl został umieszczony w runtimepath.
Ocena ryzyka
Atakujący może zdalnie wykonać dowolny kod w kontekście użytkownika otwierającego spreparowany plik tekstowy w Vimie, co prowadzi do pełnego przejęcia systemu ofiary.
Rekomendacja
Należy zaktualizować Vim do wersji 9.2.0450 lub nowszej, która zawiera poprawkę zapobiegającą przepełnieniu sterty podczas ładowania plików słownika.
Inne podatności w Vim
Zobacz wszystkie- 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-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-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-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.
- CVE-2017-6350Krytyczne
W programie vim przed poprawką 8.0.0378 występuje przepełnienie całkowite w miejscu alokacji pamięci unserialize_uep, które może wystąpić, gdy nie są prawidłowo weryfikowane wartości długości drzewa podczas odczytu uszkodzonego pliku cofania. Może to prowadzić do przepełnienia bufora.
- CVE-2017-6349Krytyczne
W programie vim przed poprawką 8.0.0377 występuje przepełnienie całkowitej liczby w miejscu alokacji pamięci u_read_undo, gdy nie są prawidłowo weryfikowane wartości długości drzewa podczas odczytu uszkodzonego pliku undo, co może prowadzić do przepełnienia bufora.
- CVE-2017-5953Krytyczne
Vim przed poprawką 8.0.0322 nieprawidłowo waliduje wartości długości drzewa podczas obsługi pliku słownika, co może prowadzić do przepełnienia całkowitego w miejscu alokacji pamięci oraz skutkować przepełnieniem bufora.
- CVE-2026-43961Wysokie
Wtyczka netrw w Vimie zawiera podatność, która pozwala na wykonanie dowolnego kodu Vimscript przez specjalnie spreparowaną nazwę pliku z cudzysłowami i fragmentami wyrażeń. Może to prowadzić do wykonania poleceń powłoki z uprawnieniami użytkownika uruchamiającego Vima.
- 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.
Oryginalny opis (angielski, źródło NVD)
Vim is an open source, command line text editor. Prior to version 9.2.0450, a heap buffer overflow exists in read_compound() in src/spellfile.c when loading a crafted spell file (.spl) with UTF-8 encoding active. An attacker-controlled length field in the spell file's compound section overflows a 32-bit signed integer multiplication, causing a small buffer to be allocated for a write loop that runs many iterations, overflowing the heap. Because the 'spelllang' option can be set from a modeline, a text file modeline can trigger spell file loading if a malicious .spl file has been planted on the runtimepath. This issue has been patched in version 9.2.0450.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

