CVE-2024-35902

net/rds: fix possible cp null dereference

State
Published
Severity
Not scored
Published
May 19, 2024
Updated
Oct 15, 2026
Reserved
May 17, 2024

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

net/rds: fix possible cp null dereference

cp might be null, calling cp->cp_conn would produce null dereference

[Simon Horman adds:]

Analysis:

* cp is a parameter of __rds_rdma_map and is not reassigned.

* The following call-sites pass a NULL cp argument to __rds_rdma_map()

- rds_get_mr() - rds_get_mr_for_dest

* Prior to the code above, the following assumes that cp may be NULL (which is indicative, but could itself be unnecessary)

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

* The code modified by this patch is guarded by IS_ERR(trans_private), where trans_private is assigned as per the previous point in this analysis.

The only implementation of get_mr that I could locate is rds_ib_get_mr() which can return an ERR_PTR if the conn (4th) argument is NULL.

* ret is set to PTR_ERR(trans_private). rds_ib_get_mr can return ERR_PTR(-ENODEV) if the conn (4th) argument is NULL. Thus ret may be -ENODEV in which case the code in question will execute.

Conclusion: * cp may be NULL at the point where this patch adds a check; this patch does seem to address a possible bug

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 786854141057751bc08eb26f1b02e97c1631c8f4 to before d275de8ea7be3a453629fddae41d4156762e814cAffected
  • 997efea2bf3a4adb96c306b9ad6a91442237bf5b to before bcd46782e2ec3825d10c1552fcb674d491cc09f9Affected
  • 9dfc15a10dfd44f8ff7f27488651cb5be6af83c2 to before cfb786b03b03c5ff38882bee38525eb9987e4d14Affected
  • b562ebe21ed9adcf42242797dd6cb75beef12bf0 to before d49fac38479bfdaec52b3ea274d290c47a294029Affected
  • 998fd719e6d6468b930ac0c44552ea9ff8b07b80 to before cbaac2e5488ed54833897264a5ffb2a341a9f196Affected
  • 2b505d05280739ce31d5708da840f42df827cb85 to before 92309bed3c5fbe2ccd4c45056efd42edbd06162dAffected
  • c055fc00c07be1f0df7375ab0036cebd1106ed38 to before 6794090c742008c53b344b35b021d4a3093dc50aAffected
  • c055fc00c07be1f0df7375ab0036cebd1106ed38 to before 62fc3357e079a07a22465b9b6ef71bb6ea75ee4bAffected
  • 907761307469adecb02461a14120e9a1812a5fb1Affected
  • 4.19.310 to before 4.19.312Affected
  • 5.4.272 to before 5.4.274Affected
  • 5.10.213 to before 5.10.215Affected
  • 5.15.152 to before 5.15.154Affected
  • 6.1.82 to before 6.1.85Affected
  • 6.6.22 to before 6.6.26Affected
  • 6.7.10 to before 6.8Affected
LinuxLinux
  • 6.8Affected
  • before 6.8Not affected
  • 4.19.312 through 4.19.*Not affected
  • 5.4.274 through 5.4.*Not affected
  • 5.10.215 through 5.10.*Not affected
  • 5.15.154 through 5.15.*Not affected
  • 6.1.85 through 6.1.*Not affected
  • 6.6.26 through 6.6.*Not affected
  • 6.8.5 through 6.8.*Not affected
  • 6.9 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.