CVE-2026-97952 in Linuxthông tin

Tóm tắt

Bởi VulDB • 25/09/2026

Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:

sunvdc: hủy ánh xạ (unmap) cookies LDC khi việc gửi descriptor thất bại

__send_request() ánh xạ các trang của yêu cầu vào bảng ánh xạ của kênh LDC (ldc_map_sg()), điền thông tin cho descriptor và đánh dấu nó là VIO_DESC_READY trước khi kích hoạt doorbell qua __vdc_tx_trigger(). Khi lệnh trigger thất bại, đường dẫn xử lý lỗi chỉ in ra một thông báo: descriptor vẫn ở trạng thái READY và các cookies không bao giờ được hủy ánh xạ. Việc giải phóng bản đồ thường diễn ra trong vdc_end_one() khi phía đối tác hoàn tất việc xử lý descriptor - nhưng một descriptor mà doorbell chưa từng được gửi sẽ không bao giờ hoàn thành, và vì dr->prod không được tăng lên khi có lỗi, đường dẫn reset (vdc_requeue_inflight(), duyệt qua khoảng [cons, prod)) cũng không truy cập đến nó. Các mục trong bảng ánh xạ bị rò rỉ vĩnh viễn.

Kể từ commit a11f6ca9aef9 ("sunvdc: Không vòng lặp vô hạn khi vio_ldc_send() trả về EAGAIN"), các lỗi trigger xảy ra thực tế dưới tải cao, do đó mọi lỗi I/O phát sinh cũng làm rò rỉ số lượng mục tương đương với một yêu cầu từ bảng ánh xạ kích thước cố định (8192 mục mỗi kênh). Vì bộ cấp phát phân phối các dải liên tục, sự phân mảnh khiến các yêu cầu đa đoạn lớn thất bại đầu tiên khi bảng bị cạn dần, cho đến khi ldc_map_sg() thất bại vĩnh viễn và ổ đĩa ngừng hoạt động cho đến khi khởi động lại.

Điều này cũng làm cho bất kỳ cơ chế khôi phục dựa trên việc thử lại (retry) nào trở nên vô dụng: việc đưa lại yêu cầu vào hàng đợi (-EAGAIN) sẽ ánh xạ lại các trang trong mọi lần thử, ghi đè lên desc->cookies và khiến bản đồ trước đó bị cô lập (orphaned), do đó bảng bị cạn dần với tốc độ retry. Đây là hiện tượng kiệt bộ nhớ được quan sát thấy khi phương pháp requeue lần đầu tiên được kiểm tra vào tháng 10 năm 2025.

Hoàn tác trên thất bại: hủy ánh xạ các cookies, đánh dấu lại descriptor là FREE và xóa mục yêu cầu. Nếu lệnh trigger thất bại với -ENOTCONN, __vdc_tx_trigger() đã thực hiện reset cổng, điều này phá vỡ và phân bổ lại cả dring lẫn kênh LDC bao gồm bảng ánh xạ của nó - không có gì để hoàn tác, và descriptor cũ (stale) không được phép chạm vào.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

chịu trách nhiệm

Linux

Đặt trước

25/09/2026

Tiết lộ

25/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you want to use VulDB in your project?

Use the official API to access entries easily!