Lỗ hổng nghiêm trọng trong Qubes OS cho phép thực thi mã từ xa tại dom0 qua qvm-copy-to-vm

30 tháng 8, 2026·4 phút đọc

Qubes OS vừa công bố bản tin bảo mật QSB-118 về lỗ hổng thực thi mã tùy ý tại dom0 thông qua tính năng báo lỗi của công cụ qvm-copy-to-vm. Kẻ tấn công có thể chiếm quyền kiểm soát toàn bộ hệ điều hành nếu người dùng sao chép tệp vào một qube độc hại. Bản vá đã được phát hành và người dùng chỉ cần cập nhật hệ thống như bình thường.

Lỗ hổng nghiêm trọng trong Qubes OS cho phép thực thi mã từ xa tại dom0 qua qvm-copy-to-vm

Lỗ hổng nghiêm trọng trong Qubes OS cho phép thực thi mã tùy ý tại dom0 qua qvm-copy-to-vm

Qubes OS, hệ điều hành nổi tiếng với mô hình bảo mật dựa trên phân vùng cô lập (qubes), vừa công bố bản tin bảo mật QSB-118 về một lỗ hổng thực thi mã tùy ý tại dom0. Lỗ hổng này nằm trong cách xử lý tên tệp trả về từ qube đích trong quá trình báo lỗi của công cụ qvm-copy-to-vm, cho phép một qube độc hại chèn lệnh tùy ý vào môi trường dom0.

Bản tin cũng đi kèm hướng dẫn chi tiết về cách xác thực chữ ký số của bản vá, nhấn mạnh tầm quan trọng của việc xác minh tính toàn vẹn trước khi cập nhật. Người dùng được khuyến cáo cập nhật hệ thống ngay lập tức để được bảo vệ.

Chi tiết lỗ hổng

Theo bản tin QSB-118, lỗ hổng được kích hoạt khi người dùng sử dụng lệnh qvm-copy-to-vm để sao chép tệp từ dom0 sang một qube khác. Công cụ này sử dụng giao thức "qfile" — một định dạng lưu trữ đơn giản hơn nhiều so với tar hay cpio, bao gồm siêu dữ liệu tệp cơ bản và cơ chế xác nhận chuyển giao ở cuối quá trình.

Cơ chế xác nhận này bao gồm:

  • Checksum của tất cả các tệp đã chuyển
  • Mã lỗi (nếu có)
  • Tên của tệp cuối cùng được nhận

Trong trường hợp xảy ra lỗi, mã lỗi được báo về dom0, và hệ thống sẽ hiển thị hộp thoại GUI bao gồm thông tin lỗi cùng tên tệp bị ảnh hưởng — tên tệp này do qube đích cung cấp.

Lỗ hổng nằm ở khâu xử lý tên tệp đó:

  1. Hàm wait_for_result() gọi sanitize_remote_filename() để làm sạch tên tệp nhận được, chỉ loại bỏ một số ký tự nguy hiểm như dấu nháy đơn (') và dấu nháy kép (").

  2. Sau đó, hàm call_error_handler() gọi hàm gui_fatal() -> display_error() tại dom0, và hàm này sử dụng system() để khởi chạy hộp thoại lỗi.

Vấn đề nằm ở chỗ: mặc dù sanitize_remote_filename() đã lọc một số ký tự, nhưng **dấu backtick () không được lọc**. Đây là ký tự đặc biệt trong shell, được dùng để thực thi lệnh con. Kẻ tấn công có thể chèn lệnh shell tùy ý được bao quanh bởi dấu backtick vào tên tệp, và lệnh này sẽ được thực thi khi display_error()gọisystem()` để hiển thị hộp thoại lỗi.

Đây là một ví dụ về cách tấn công:

Nếu tên tệp được chèn là `malicious_command`, thì lệnh malicious_command sẽ được thực thi trong môi trường dom0.

Tác động

Nếu một qube đã bị xâm nhập (compromised), và người dùng thực hiện thao tác qvm-copy-to-vm từ dom0 đến qube đó, kẻ tấn công có thể khai thác lỗ hổng này để:

  • Chèn lệnh tùy ý vào dom0
  • Chiếm toàn quyền kiểm soát toàn bộ hệ điều hành Qubes OS

Đây là một lỗ hổng nghiêm trọng vì dom0 là thành phần trung tâm, có đặc quyền cao nhất trong kiến trúc Qubes OS, chịu trách nhiệm quản lý các qube và điều phối toàn bộ hệ thống.

Hướng khắc phục

Người dùng Qubes OS chỉ cần thực hiện cập nhật hệ thống bình thường để nhận bản vá bảo mật:

sudo qubes-dom0-update

Không cần bất kỳ hành động đặc biệt nào khác. Tuy nhiên, Qubes OS cũng đặc biệt nhấn mạnh tầm quan trọng của việc xác minh chữ ký số của bản tin và bản vá, để đảm bảo tính toàn vẹn và xác thực nguồn gốc.

Lời khuyên cho người dùng Việt Nam

Với cộng đồng người dùng Qubes OS tại Việt Nam — thường là các nhà nghiên cứu bảo mật, kỹ sư DevOps và những người quan tâm đến quyền riêng tư — lỗ hổng này là lời nhắc nhở quan trọng về việc:

  • Luôn cập nhật hệ thống kịp thời, không trì hoãn các bản vá bảo mật
  • Thận trọng với các thao tác sao chép tệp giữa các qube, đặc biệt là khi tệp đến từ các nguồn không tin cậy
  • Xác minh chữ ký số của các bản cập nhật và thông báo bảo mật trước khi áp dụng

Đây là lỗ hổng thứ hai trong chuỗi các vấn đề bảo mật liên quan đến xử lý tên tệp không an toàn trong các công cụ dòng lệnh của Qubes OS. Hy vọng nhóm phát triển sẽ tiếp tục rà soát các công cụ tương tự để phòng tránh các lỗ hổng cùng dạng trong tương lai.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗