Linux của bạn có thể bị hack chỉ bằng cách mở một file
Người dùng Linux hãy cẩn thận!
Nếu gần đây bạn chưa cập nhật hệ điều hành Linux, đặc biệt là tiện ích soạn thảo văn bản dòng lệnh, đừng thử xem nội dung của tệp bằng Vim hoặc Neovim.
Nhà nghiên cứu bảo mật Armin Razmjou gần đây đã phát hiện ra lỗ hổng thực thi lệnh hệ điều hành tùy ý nghiêm trọng cao (CVE-2019-12735) ở Vim và Neovim – hai ứng dụng chỉnh sửa văn bản dòng lệnh phổ biến và mạnh mẽ nhất được cài đặt sẵn với hầu hết các hệ điều hành dựa trên Linux.
Trên các hệ thống Linux, trình soạn thảo Vim cho phép người dùng tạo, xem hoặc chỉnh sửa bất kỳ tệp nào, bao gồm văn bản, tập lệnh lập trình và tài liệu. Do Neovim chỉ là một phiên bản mở rộng của Vim, với trải nghiệm người dùng, plugin và GUI tốt hơn, lỗ hổng thực thi mã cũng nằm trong đó.
Lỗ hổng thực thi mã trong Vim và Neovim
Razmjou đã phát hiện ra một lỗ hổng trong cách trình soạn thảo Vim xử lý “modelines”, một tính năng được bật theo mặc định để tự động tìm và áp dụng một tập hợp các tùy chọn tùy chỉnh được đề cập bởi người tạo tệp gần dòng bắt đầu và kết thúc trong tài liệu.
Mặc dù trình chỉnh sửa chỉ cho phép một tập hợp con các tùy chọn trong mô hình (vì lý do bảo mật) và sử dụng sandbox protection nếu nó chứa biểu thức không an toàn, Razmjou tiết lộ rằng sử dụng “:source!” lệnh (với một sửa đổi [!]) có thể được sử dụng để bỏ qua sandbox.
Do đó, chỉ cần mở một tệp được tạo thủ công đặc biệt bằng cách sử dụng Vim hoặc Neovim có thể cho phép kẻ tấn công bí mật thực thi các lệnh trên hệ thống Linux của bạn và kiểm soát nó từ xa.
Nhà nghiên cứu cũng đã phát hành hai khai thác bằng chứng khái niệm cho công chúng, một trong số đó thể hiện một kịch bản tấn công ngoài đời thực trong đó một kẻ tấn công từ xa có quyền truy cập vào một reverse shell từ hệ thống của nạn nhân ngay khi anh ta mở một tập tin trên nó.
Các nhà bảo trì của Vim (bản vá 8.1.1365) và Neovim (phát hành trong v0.3.6) đã phát hành bản cập nhật cho cả hai tiện ích để giải quyết vấn đề, người dùng nên cài đặt càng sớm càng tốt.
Bên cạnh đó, nhà nghiên cứu cũng đã khuyến nghị người dùng:
-
Vô hiệu hóa tính năng modelines,
-
Vô hiệu hóa “modelineexpr” để không cho phép các expressions trong modelines,
-
Sử dụng “securemodelines plugin”, một giải pháp thay thế an toàn cho các Vim modeline.