Podatność typu integer overflow (CWE-190) w Vim przed patchem 8.0.0378 pozwala na wywołanie przepełnienia bufora podczas odczytu uszkodzonego pliku undo. Ze względu na brak walidacji wartości długości drzewa przy deserializacji, błąd może prowadzić do wykonania arbitralnego kodu.
▸ Pokaż oryginał (EN)
An integer overflow at an unserialize_uep memory allocation site would occur for vim before patch 8.0.0378, if it does not properly validate values for tree length when reading a corrupted undo file, which may lead to resultant buffer overflows.
Podczas odczytu uszkodzonego pliku undo Vim nie waliduje prawidłowo wartości długości drzewa (tree length) w trakcie alokacji pamięci w funkcji unserialize_uep. Prowadzi to do przepełnienia liczby całkowitej przy obliczaniu rozmiaru alokacji, co skutkuje przydzieleniem zbyt małego obszaru pamięci. Następnie dane zapisywane są poza granicami tego obszaru, powodując przepełnienie bufora (buffer overflow).
Atakujący może doprowadzić do przepełnienia bufora, co potencjalnie umożliwia wykonanie arbitralnego kodu w kontekście procesu Vim lub destabilizację aplikacji.
Należy zaktualizować Vim do wersji zawierającej patch 8.0.0378 lub nowszej. Poprawka dostępna jest w repozytorium projektu pod commitem 0c8485f0e4931463c0f7986e1ea84a7d79f10c75.
Vim przed patchem 8.0.0378
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HVim
APPVim≤ 8.0.0377
Powiązane podatności
Vim: command injection przez %{expr} w tabpanel umożliwia RCE
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