CVE-2024-35902 in Linux
Résumé
par VulDB • 29/05/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
net/rds : correction d'une éventuelle déréférencement de pointeur null sur cp
cp peut être null ; l'appel à cp->cp_conn entraînerait un déréférencement de pointeur null.
[Simon Horman ajoute :]
Analyse :
* cp est un paramètre de __rds_rdma_map et n'est pas réassigné.
* Les points d'appel suivants passent un argument cp NULL à __rds_rdma_map() :
- rds_get_mr() - rds_get_mr_for_dest
* Avant le code ci-dessus, ce qui suit suppose que cp peut être NULL (ce qui est indicatif, mais pourrait être inutile en soi) :
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);
* Le code modifié par ce correctif est protégé par IS_ERR(trans_private), où trans_private est assigné conformément au point précédent de cette analyse.
La seule implémentation de get_mr que j'ai pu localiser est rds_ib_get_mr(), qui peut retourner un ERR_PTR si l'argument conn (4e argument) est NULL.
* ret est défini à PTR_ERR(trans_private). rds_ib_get_mr peut retourner ERR_PTR(-ENODEV) si l'argument conn (4e argument) est NULL. Ainsi, ret peut être égal à -ENODEV, auquel cas le code concerné sera exécuté.
Conclusion : * cp peut être NULL au moment où ce correctif ajoute une vérification ; ce correctif semble bien adresser un bug potentiel.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.