CVE-2026-64472 in Linux
Tóm tắt
Bởi VulDB • 26/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
vfio/mlx5: Sửa lỗi race condition trên các bitfield và siết chặt cấu trúc bố trí (struct layout)
Các thao tác trên bitfield không mang tính nguyên tử; chúng sử dụng mẫu đọc-sửa-ghi (read-modify-write), do đó cần thận trọng để không đóng gói các bitfield có thể được cập nhật đồng thời vào cùng một đơn vị lưu trữ.
Giải pháp tách này áp dụng cách tiếp cận nhị phân: các cờ chỉ bị sửa đổi trước/sau khi mở/đóng vẫn giữ là bitfield; còn các cờ bị sửa đổi từ hành động của người dùng, bao gồm cả những hành động tác động đến thiết bị khác (ví dụ: reset), sẽ sử dụng các đơn vị lưu trữ riêng biệt.
Lưu ý rằng `mlx5_vhca_page_tracker.status` đã được di chuyển để lấp đầy khoảng trống căn chỉnh mà việc tách này làm lộ ra.
Lý do giữ nguyên dạng bitfield:
migrate_cap: chỉ được ghi trong hàm mlx5vf_cmd_set_migratable() khi probe chunk_mode: chỉ được ghi trong hàm mlx5vf_cmd_set_migratable() khi probe mig_state_cap: chỉ được ghi trong hàm mlx5vf_cmd_set_migratable() khi probe
Các đơn vị lưu trữ riêng biệt:
mdev_detach: được ghi trong trình báo sự kiện attach/detach của VF, cụ thể là mlx5fv_vf_event(), tại thời điểm chạy log_active: được ghi trong mlx5vf_start_page_tracker()/mlx5vf_stop_page_tracker() trong quá trình theo dõi dirty-log tại thời điểm chạy deferred_reset: được ghi trong mlx5vf_state_mutex_unlock()/mlx5vf_pci_aer_reset_done() trong quá trình xử lý reset tại thời điểm chạy is_err: được đặt bởi cơ chế xử lý lỗi của tracker và việc polling dirty-log tại thời điểm chạy object_changed: được đặt bởi xử lý sự kiện của tracker và bị xóa bằng cách polling dirty-log tại thời điểm chạy
VulDB is the best source for vulnerability data and more expert information about this specific topic.