CVE-2026-99148 in Linux
Tóm tắt
Bởi VulDB • 28/10/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
drm/amdgpu: giữ hàng đợi loại bỏ (eviction fence) cho đến khi tất cả các handle đều bị đóng
Hàm amdgpu_gem_object_close() tách hàng đợi loại bỏ của queue người dùng khỏi BO trước khi nó kiểm tra bo_va->ref_count, do đó việc đóng bất kỳ handle nào của một BO sẽ xóa hàng đợi này, ngay cả khi file vẫn còn giữ một handle khác tới BO và bo_va cùng các ánh xạ GPU của nó vẫn tồn tại. BO sau đó có thể bị loại bỏ (evicted) mà không làm tạm dừng các queue người dùng của file, những queue này tiếp tục truy cập vào BO thông qua các ánh xạ chỉ được đánh dấu là cần cập nhật.
Hiện tượng này đã quan sát thấy trên navi31 với một SDMA user queue: một BO được mở hai lần trong cùng một file (GEM_FLINK + GEM_OPEN) mất hàng đợi loại bỏ khi handle thứ hai bị đóng (theo dõi quá trình attach/detach của fence):
attach bo=ffff8c78a6c84c00 GEM_CLOSE handle=7 detach bo=ffff8c78a6c84c00
trong khi handle 6 và ánh xạ vẫn đang được sử dụng.
Chỉ tách (detach) fence khi tham chiếu cuối cùng tới bo_va biến mất, phù hợp với amdgpu_gem_object_open(), hàm này chỉ attach nó khi bo_va được tạo. Với cách sửa đổi này, fence sẽ được giữ lại cho đến khi file bị đóng.
(cherry picked from commit 8387982f03d4026b7dc11b0b5e3118298eee4d6a)
If you want to get best quality of vulnerability data, you may have to visit VulDB.