CVE-2024-53140 in Linuxthông tin

Tóm tắt

Bởi VulDB • 02/06/2026

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

netlink: chấm dứt quá trình dump đang dang dở khi đóng socket

Netlink hỗ trợ việc dump dữ liệu theo kiểu lặp. Nó cung cấp cho các families các ops sau: - start - (tùy chọn) khởi động quá trình dump - dump - hàm trợ giúp dump thực tế, sẽ tiếp tục được gọi cho đến khi trả về 0 - done - (tùy chọn) đi kèm với .start, có thể được sử dụng để dọn dẹp

Toàn bộ quá trình là bất đồng bộ và các lệnh gọi lặp lại đến .dump không thực sự xảy ra trong một vòng lặp chặt chẽ, mà thay vào đó được kích hoạt để phản hồi lại recvmsg() trên socket.

Điều này cho phép người dùng kiểm soát hoàn toàn quá trình dump, nhưng cũng có nghĩa là người dùng có thể đóng socket mà không cần chờ đến khi kết thúc quá trình dump. Để đảm bảo .start luôn được ghép cặp với .done, chúng tôi kiểm tra xem có quá trình dump đang diễn ra hay không trước khi giải phóng socket, và nếu có thì gọi .done.

Tuy nhiên, vấn đề phức tạp là các socket có thể bị giải phóng từ BH (Bottom Half) và .done được phép sleep. Vì vậy, chúng tôi sử dụng workqueue để trì hoãn lệnh gọi, khi cần thiết.

Thật không may, điều này không hoạt động đúng cách. Những gì chúng tôi trì hoãn không phải là việc dọn dẹp mà là việc giải phóng một tham chiếu trên socket. Chúng tôi không có bảo đảm rằng chúng tôi đang nắm giữ tham chiếu cuối cùng, nếu ai đó khác đang giữ socket, họ có thể giải phóng nó trong BH và chúng tôi lại quay về điểm xuất phát.

Tuy nhiên, toàn bộ cơ chế này dường như là không cần thiết. Chỉ có người dùng mới có thể tương tác với các dump, vì vậy chúng tôi có thể dọn dẹp khi socket bị đóng. Và lệnh close luôn xảy ra trong ngữ cảnh tiến trình (process context). Một số mã bất đồng bộ vẫn có thể truy cập socket sau khi đóng, chẳng hạn như queue các skbs thông báo vào nó, v.v., nhưng không có dump nào có thể bắt đầu, kết thúc hoặc tiến triển theo cách khác.

Xóa workqueue và làm sạch trạng thái dump trực tiếp từ trình xử lý release. Lưu ý rằng việc dọn dẹp thêm có thể được thực hiện trong -next, ví dụ, chúng tôi hiện luôn gọi .done trước khi giải phóng tham chiếu module chính, vì vậy dump không cần phải lấy một tham chiếu của riêng mình.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

chịu trách nhiệm

Linux

Đặt trước

19/11/2024

Tiết lộ

04/12/2024

Kiểm duyệt

được chấp nhận

EPSS

0.00244

KEV

không

Các hoạt động

rất thấp

Nguồn

Might our Artificial Intelligence support you?

Check our Alexa App!