Một lỗ hổng trong Vim cho phép thực thi mã khi mở TXT

Khí lực

Một lỗ hổng mới đã được sửa trong các trình soạn thảo văn bản được cài đặt sẵn trên các bản phân phối khác nhau Linux đã được tìm thấy trong trình soạn thảo văn bản Vim và Neovim (CVE-2019-12735).

Lỗi được tìm thấy trong các trình chỉnh sửa này cho phép tin tặc kiểm soát máy tính khi người dùng mở một tệp văn bản độc hại. Sự cố được hiển thị với hoạt động modeline được bật theo mặc định (": set modeline"), cho phép bạn xác định các tùy chọn chỉnh sửa trong tệp đang được xử lý.

Vim và ngã ba NeoVim của nó có một lỗ hổng nằm trong các mô hình. Tính năng này cho phép người dùng chỉ định kích thước cửa sổ và các tùy chọn tùy chỉnh khác ở gần đầu hoặc cuối tệp văn bản.

Tính năng này được bật theo mặc định trong các phiên bản trước Vim 8.1.1365 Neovim 0.3.6 và áp dụng cho tất cả các loại tệp, bao gồm cả tệp .txt.

Giới thiệu về lỗ hổng trong Vim

Thông qua Modeline, chỉ cho phép một số tùy chọn giới hạn. SNếu một biểu thức được chỉ định làm giá trị tùy chọn, nó sẽ chạy ở chế độ hộp cát, chế độ này chỉ cho phép sử dụng các thao tác an toàn đơn giản nhất.

Đồng thời lệnh ": source" là một trong những lệnh được phép, trong đó bạn có thể sử dụng công cụ sửa đổi "!" để chạy các lệnh tùy ý từ tệp được chỉ định.

Do đó, để thực thi mã, chỉ cần chỉ ra trong dòng modeline là đủ để xây dựng dạng "set foldexpr = execute ('\: source! Some_file'):". Trong Neovim, lệnh gọi thực thi bị cấm, nhưng thay vào đó, khẳng định_fails có thể được sử dụng.

Mặt khác, trong hộp cát, nó được thiết kế để ngăn chặn các tác dụng phụ:

Tất cả các tùy chọn 'foldexpr', 'formatexpr', 'inceexpr', 'indentexpr', 'statusline' và 'foldtext' đều có thể được đánh giá trong hộp cát. Điều này có nghĩa là bạn được bảo vệ chống lại những biểu hiện này với những tác dụng phụ khó chịu. Điều này cung cấp một số bảo mật khi các tùy chọn này được xác định từ một mô hình.

Mặc dù các mô hình giới hạn các lệnh có sẵn và thực thi chúng trong một môi trường cách ly với hệ điều hành, nhà nghiên cứu Armin Razmjou lưu ý rằng lệnh: font! đã phá vỡ sự bảo vệ này:

"Cô ấy đọc và thực hiện các lệnh trong một tệp nhất định như thể chúng được nhập theo cách thủ công, thực hiện chúng khi hộp cát đã được để lại", nhà nghiên cứu viết trong một thông báo được công bố vào đầu tháng này. -ci.

Do đó, người ta có thể xây dựng một cách nhỏ giọt mô hình thực thi mã bên ngoài hộp cát.

Bài đăng bao gồm hai tệp văn bản bằng chứng về nguyên tắc, một trong số đó minh họa bằng đồ họa về mối đe dọa.

Một trong số chúng sẽ mở một trình bao đảo ngược trên máy tính chạy Vim hoặc NeoVim. Từ đó, những kẻ tấn công có thể khởi chạy các lệnh mà họ lựa chọn tại máy được trưng dụng.

"PoC này mô tả một cách tiếp cận tấn công thực sự, trong đó một trình bao đảo ngược được khởi chạy khi người dùng mở tệp," Razmjou viết. «Để ẩn cuộc tấn công, tệp sẽ được viết lại ngay lập tức khi nó được mở. Ngoài ra, PoC sử dụng trình tự thoát đầu cuối để ẩn dòng mô hình khi nội dung được in bằng mèo. (mèo -v tiết lộ nội dung thực tế). «

Lỗ hổng thực thi lệnh yêu cầu kích hoạt chức năng mô hình hóa tiêu chuẩn, như trong một số bản phân phối Linux theo mặc định. Lỗi được tìm thấy trong Vim trước phiên bản 8.1.1365 và trong Neovim trước phiên bản 0.3.6.

Lời khuyên này từ Cơ sở dữ liệu lỗ hổng quốc gia của Viện Tiêu chuẩn và Công nghệ Quốc gia cho thấy rằng các bản phân phối Debian và Fedora Linux đã bắt đầu phát hành các phiên bản cố định.

Trong các bản phân phối, vấn đề được giải quyết trong RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux và ALT.

Lỗ hổng bảo mật vẫn chưa được sửa chữa trong Debian (Trong mô hình Debian, nó bị tắt theo mặc định, vì vậy lỗ hổng bảo mật không hiển thị ở trạng thái mặc định).

Phiên bản mới nhất của MacOS tiếp tục sử dụng phiên bản dễ bị tấn công, mặc dù các cuộc tấn công chỉ hoạt động khi người dùng đã thay đổi cài đặt mặc định có bật tính năng mô hình.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.