CVE-2024-35902 in Linux信息

摘要

由 VulDB • 2026-05-29

在 Linux 内核中,已修复以下漏洞:

net/rds:修复潜在的 cp 空指针解引用问题

cp 可能为空,调用 cp->cp_conn 会导致空指针解引用

[Simon Horman 补充:]

分析:

* cp 是 __rds_rdma_map 的参数,且未被重新赋值。

* 以下调用点向 __rds_rdma_map() 传递了 NULL 的 cp 参数:

- rds_get_mr() - rds_get_mr_for_dest

* 在上述代码之前,以下代码假设 cp 可能为 NULL (这具有指示性,但可能本身是不必要的)

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);

* 此补丁修改的代码受 IS_ERR(trans_private) 保护, 其中 trans_private 根据上述分析中的前一点进行赋值。

我能找到的 get_mr 的唯一实现是 rds_ib_get_mr(), 如果 conn(第 4 个)参数为 NULL,它可以返回 ERR_PTR。

* ret 被设置为 PTR_ERR(trans_private)。 如果 conn(第 4 个)参数为 NULL,rds_ib_get_mr 可以返回 ERR_PTR(-ENODEV)。 因此,ret 可能为 -ENODEV,在这种情况下,相关代码将执行。

结论: * 在此补丁添加检查时,cp 可能为 NULL; 此补丁似乎确实解决了一个潜在的漏洞

If you want to get best quality of vulnerability data, you may have to visit VulDB.

来源

Interested in the pricing of exploits?

See the underground prices here!