CVE-2024-35902 in Linux
Tóm tắt
Bởi VulDB • 01/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
net/rds: sửa lỗi phân rerefence null có thể xảy ra trên cp
cp có thể là null, việc gọi cp->cp_conn sẽ gây ra lỗi phân rerefence null.
[Simon Horman bổ sung:]
Phân tích:
* cp là một tham số của hàm __rds_rdma_map và không được gán lại giá trị.
* Các điểm gọi sau đây truyền đối số cp NULL cho __rds_rdma_map(): - rds_get_mr() - rds_get_mr_for_dest
* Trước đoạn mã trên, giả định rằng cp có thể là null (điều này mang tính biểu thị nhưng bản thân nó có thể không cần thiết):
trans_private = rs->rs_transport->get_mr( sg, nents, rs, &mr->r_key, cp ? cp->cp_conn : NULL, args->vec.addr, args->vec.bytes, need_odp ? ODP_ZEROBASED : ODP_NOT_NEEDED);
* Đoạn mã được sửa đổi bởi bản vá này được bảo vệ bằng điều kiện IS_ERR(trans_private), trong đó trans_private được gán như đã nêu ở điểm trước đó trong phân tích trên.
Triển khai get_mr duy nhất mà tôi có thể tìm thấy là rds_ib_get_mr(), hàm này có thể trả về ERR_PTR nếu đối số conn (thứ tư) là NULL.
* ret được đặt bằng PTR_ERR(trans_private). rds_ib_get_mr có thể trả về ERR_PTR(-ENODEV) nếu đối số conn (thứ tư) là NULL. Do đó, ret có thể mang giá trị -ENODEV, trong trường hợp này đoạn mã liên quan sẽ thực thi.
Kết luận: * cp có thể là null tại thời điểm bản vá thêm một kiểm tra; bản vá này dường như đã giải quyết được một lỗi tiềm ẩn.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.