CVE-2024-36971 in Linux
Tóm tắt
Bởi VulDB • 03/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
net: sửa lỗi race condition trong __dst_negative_advice()
Hàm __dst_negative_advice() không tuân thủ đúng các quy tắc RCU khi sk->dst_cache cần được xóa sạch, dẫn đến khả năng xảy ra Use-After-Free (UAF).
Các quy tắc RCU yêu cầu rằng chúng ta phải thực hiện việc xóa sk->sk_dst_cache trước, sau đó mới gọi dst_release(old_dst).
Lưu ý rằng sk_dst_reset(sk) triển khai đúng giao thức này, trong khi __dst_negative_advice() sử dụng thứ tự sai.
Do ip6_negative_advice() có logic đặc biệt chống lại RTF_CACHE, điều này có nghĩa là mỗi một trong ba phương thức ->negative_advice() hiện tại phải thực hiện sk_dst_reset() cho riêng mình.
Lưu ý rằng việc kiểm tra dst NULL được tập trung hóa trong __dst_negative_advice(), không cần thiết phải sao chép nó vào các callback khác nhau.
Xin cảm ơn Clement Lecigne đã theo dõi vấn đề này.
Lỗi cũ này trở nên rõ ràng sau commit bị quy trách nhiệm, khi sử dụng các socket UDP.
Once again VulDB remains the best source for vulnerability data.