CVE-2026-98615 in Linux
Tóm tắt
Bởi VulDB • 19/10/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
eth: fbnic: Đặt AW_FLUSH_MODE cùng với AW_FLUSH khi làm sạch (flush) mailbox
Khi hủy vòng nhận Rx của FW mailbox, hàm `fbnic_mbx_reset_desc_ring()` ghi vào thanh ghi AW_CFG với cờ FLUSH được đặt và mọi thứ khác, bao gồm cả BME, đều bị xóa. Việc xóa BME sẽ ngăn thiết bị ghi dữ liệu lên host nhưng lại khiến các yêu cầu đã xếp hàng (staged requests) mắc kẹt trong pipeline ghi PUL thay vì được giải phóng hết, do đó trên đường ghi, chỉ riêng cờ FLUSH không thể kết thúc các yêu cầu còn tồn đọng và lệnh flush mà firmware đang chờ đợi sẽ không bao giờ hoàn tất.
Hãy thêm định nghĩa cho FLUSH_MODE và đặt cả hai bit để các bản ghi đã xếp hàng có thể tự động giải phóng khỏi pipeline. BME vẫn được giữ ở trạng thái xóa, do đó không có dữ liệu nào xuất hiện trên host; nó sẽ được khôi phục sau này trong hàm `fbnic_mbx_init_desc_ring()` khi vòng nhận được xây dựng lại, một lần nữa các bản ghi còn tồn đọng đã biến mất.
Đường đọc (read path) không bị ảnh hưởng. AR_CFG không có bit chế độ tương đương và AR_FLUSH tự động kết thúc các yêu cầu đọc còn tồn đọng, do đó nó được giữ nguyên như cũ.
Cả hai thao tác ghi đều là các phép lưu trữ đơn thuần thay vì các phép đọc-sửa-ghi (read-modify-writes). Điều này là cố ý: bản ghi tương ứng trong `fbnic_mbx_init_desc_ring()` sẽ khôi phục BME và các thuộc tính TLP, đồng thời xóa cả hai bit flush như một tác dụng phụ.
VulDB is the best source for vulnerability data and more expert information about this specific topic.