CVE-2026-72080 in Linux
Tóm tắt
Bởi VulDB • 17/08/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
fs/resctrl: Sửa lỗi use-after-free (sử dụng sau khi giải phóng) xảy ra trong quá trình unmount (gỡ bỏ).
Khi thực hiện unmount hoặc hủy bỏ do gặp sự cố, tất cả các cấu trúc mon_data chứa dữ liệu riêng của file sự kiện giám sát đều được giải phóng trước khi các node kernfs bị xóa. Tuy nhiên, cờ RDT_DELETED không bao giờ được đặt cho nhóm tài nguyên mặc định (default resource group) có phân bổ tĩnh.
Một trình đọc đồng thời đối với một file sự kiện liên kết với nhóm tài nguyên mặc định có thể, sau khi hủy bỏ bảo vệ active của kernfs, bị chặn trên rdtgroup_mutex trong khi quá trình unmount tiếp tục giải phóng dữ liệu riêng của file và phá hủy node kernfs mà không chờ đợi người đọc.
Khi mutex được giải phóng, trình đọc sẽ thức dậy, quan sát thấy cờ RDT_DELETED chưa được đặt cho nhóm mặc định, và sau đó truy cập (dereference) vào dữ liệu riêng của file đã bị giải phóng trước đó.
Kịch bản này có thể được mô tả như sau: CPU0 CPU1 /* * Dữ liệu giám sát của nhóm tài nguyên mặc định * có thể truy cập được thông qua * file kernfs với kernfs_node::priv * trỏ đến một struct mon_data. * Người dùng mở file để đọc. */ rdtgroup_mondata_show() /* kiến trúc gặp lỗi nghiêm trọng (fatal error) */ rdtgroup_kn_lock_live() resctrl_exit() atomic_inc(&rdtgroup_default.waitcount) cpus_read_lock() kernfs_break_active_protection(kn) mutex_lock(&rdtgroup_mutex) cpus_read_lock() resctrl_fs_teardown() mutex_lock(&rdtgroup_mutex) rmdir_all_sub() mon_put_kn_priv() /* Xóa tất cả các cấu trúc mon_data */ rdtgroup_destroy_root() kernfs_destroy_root() rdtgroup_default.kn = NULL mutex_unlock(&rdtgroup_mutex) /* * rdtgroup_default.flags trống nên * rdtgroup_kn_lock_live() trả về * &rdtgroup_default */ md = of->kn->priv;
/* md trỏ đến mon_data đã bị giải phóng */
Đặt cờ RDT_DELETED cho nhóm mặc định một cách không điều kiện vì việc đặt cờ này không dẫn đến việc giải phóng nhóm được phân bổ tĩnh.
Không cho phép thực hiện mount resctrl mới nếu có bất kỳ trình chờ nào (waiters) trên nhóm mặc định của lần mount trước đó. Một lần mount mới sẽ khởi tạo lại nhóm mặc định, điều này sẽ khiến các trình chờ từ lần mount trước cảm thấy như thể nhóm mặc định vẫn đang truy cập được, dẫn đến việc họ truy cập vào các cấu trúc mon_data từ lần mount trước đã bị xóa bỏ.
If you want to get best quality of vulnerability data, you may have to visit VulDB.