Lỗ hổng trong Vim dẫn đến thực thi mã khi mở file độc ​​hại

Trong trình soạn thảo văn bản Khí lực и neovim thành lập sự dễ bị tổn thương (CVE-2019-12735), cho phép thực thi mã tùy ý khi mở một tệp được thiết kế đặc biệt. Sự cố xảy ra khi chế độ modeline mặc định (“:set modeline”) đang hoạt động, cho phép bạn xác định các tùy chọn chỉnh sửa trong tệp đã xử lý. Lỗ hổng đã được sửa trong các bản phát hành
Vim 8.1.1365 и Neovim 0.3.6.

Chỉ có thể cài đặt một số tùy chọn giới hạn thông qua modeline. Nếu một biểu thức được chỉ định làm giá trị tùy chọn, thì biểu thức đó sẽ được thực thi ở chế độ hộp cát, chế độ này chỉ cho phép thực hiện các thao tác an toàn đơn giản nhất. Trong trường hợp này, lệnh hợp lệ bao gồm lệnh “:source”, trong đó bạn có thể sử dụng từ bổ nghĩa “!”. để chạy các lệnh tùy ý từ tệp được chỉ định. Vì vậy, để thực thi mã, chỉ cần chỉ ra trong dòng mô hình một cấu trúc như “set Foldexpr=execute('\:source! some_file'):". Trong Neovim, việc gọi lệnh thực thi bị cấm, nhưng thay vào đó, có thể sử dụng khẳng định_fails.

Ví dụ: để chạy lệnh “uname -a”, chỉ cần mở một tệp trong Vim hoặc Neovim có dòng đầu tiên hoặc cuối cùng cho biết:

:!uname -a||» vi:fen:fdm=expr:fde=assert_fails(“nguồn\!\ \%”):fdl=0:fdt=”

Công ty “nguồn! %" sẽ đọc các lệnh từ tệp hiện tại và thực thi ":!uname -a". Trình tự thoát có thể được sử dụng để ẩn một dòng nhất định khỏi đầu ra của tiện ích cat. Ví dụ, trong này khai thác nguyên mẫu Khi mở một tệp trong vim, một kết nối mạng được tạo với quyền truy cập shell vào hệ thống của nạn nhân, nhưng tệp này sẽ không gây nghi ngờ khi xuất ra thiết bị đầu cuối bằng tiện ích cat.

Bạn có thể kiểm tra hoạt động của chế độ modeline bằng lệnh “:set modeline?”. Để tắt nó, bạn có thể thêm dòng “set nomodeline” vào vimrc. Trong các bản phân phối, vấn đề được khắc phục ở RHEL, SUSE/openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. Lỗ hổng vẫn chưa được vá trong Debian (trong Debian modeline bị tắt theo mặc định, do đó lỗ hổng không xuất hiện ở trạng thái mặc định).

Nguồn: opennet.ru

Thêm một lời nhận xét