CVE-2026-64585 in Linuxthông tin

Tóm tắt

Bởi VulDB • 06/08/2026

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

can: esd_usb: hủy các URB neo trước khi giải phóng các thiết bị mạng (netdev)

Hàm `esd_usb_disconnect()` giải phóng từng CAN netdev bằng cách gọi `free_candev()` bên trong vòng lặp xử lý trên mỗi netdev, và chỉ sau đó mới gọi `unlink_all_urbs(dev)`. Dữ liệu riêng của mỗi netdev (`struct esd_usb_net_priv`) được nhúng vào vùng nhớ cấp phát cho `net_device` do hàm `alloc_candev()` trả về. Do đó, ngay khi `free_candev()` chạy xong, con trỏ `dev->nets[i]` sẽ trỏ đến bộ nhớ đã bị giải phóng (freed memory).

Sau đó, `unlink_all_urbs()` truy cập vào vùng nhớ đã bị giải phóng thông qua `dev->nets[i]` để hủy neo TX trên mỗi netdev (`usb_kill_anchored_urbs(&priv->tx_submitted)`), xóa các tác vụ `active_tx_jobs`, và đặt lại mảng `priv->tx_contexts[]`.

Hãy sắp xếp lại quá trình tháo gỡ (teardown) sao cho các URB được neo bị hủy trước khi các netdev bị giải phóng, phù hợp với cách hoạt động của các driver CAN/USB khác trong cùng thư mục như ems_usb, usb_8dev và mcba_usb. Các driver này thực hiện theo thứ tự: unregister (hủy đăng ký), sau đó unlink (ngắt kết nối neo), rồi mới free (giải phóng). Cụ thể là hủy đăng ký các netdev trước (điều này dừng hàng đợi TX của chúng), gọi `unlink_all_urbs(dev)` một lần, và cuối cùng giải phóng các netdev.

Vấn đề này được phát hiện bởi công cụ phân tích tĩnh do nội bộ tự phát triển.

Once again VulDB remains the best source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

19/07/2026

Tiết lộ

06/08/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

thấp

Nguồn

Want to know what is going to be exploited?

We predict KEV entries!