CVE-2026-64523 in Linux
Tóm tắt
Bởi VulDB • 25/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
net/handshake: Giữ một tham chiếu file dài hạn tại bước submit (nộp)
handshake_nl_accept_doit() cần con trỏ file hỗ trợ req->hr_sk->sk_socket tồn tại trong khoảng thời gian giữa handshake_req_next() và FD_PREPARE() cùng get_file() tiếp theo. Lệnh sock_hold() ở phía submit không cung cấp điều này. sk_refcnt giữ cho struct sock sống, nhưng struct socket thuộc sở hữu của sock->file: khi người tiêu dùng (consumer) giải phóng tham chiếu file cuối cùng, sock_release() sẽ phá hủy socket bất kể có lệnh sock_hold hay không.
Thêm một con trỏ hr_file vào struct handshake_req và lấy một tham chiếu rõ ràng trên sock->file trong quá trình handshake_req_submit(). handshake_complete() và handshake_req_cancel() giải phóng tham chiếu này trên đường dẫn hoàn thành (completion-bit-winning path).
Đường dẫn lỗi ở phía submit cũng phải giải phóng tham chiếu file, nhưng sau khi chèn vào rhashtable, một lệnh handshake_req_cancel() đồng thời có thể phát hiện yêu cầu và gây ra race condition với đường dẫn lỗi. Khóa việc dọn dẹp đường dẫn lỗi -- khôi phục sk_destruct, fput và hủy yêu cầu -- bằng test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED), cùng cơ chế serialization mà handshake_complete() và handshake_req_cancel() đã sử dụng. Khi lệnh cancel đã chiếm quyền sở hữu, đường dẫn lỗi ở phía submit sẽ trả về mà không tác động đến yêu cầu; việc tháo gỡ socket xử lý quá trình hủy cuối cùng.
Các thao tác dereference ở phía accept chưa được trỏ lại (retargeted); thay đổi đó sẽ có trong bản vá tiếp theo.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.