CVE-2024-35902 in Linux
Riassunto
di VulDB • 01/07/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
net/rds: correzione del possibile dereferenziamento di un puntatore nullo (cp null)
Il puntatore cp potrebbe essere nullo; l'accesso a `cp->cp_conn` provocherebbe quindi un dereferenziamento su valore nullo.
[Simon Horman aggiunge:]
Analisi:
* cp è un parametro della funzione `__rds_rdma_map` e non viene riassegnato. * I seguenti punti di chiamata passano l'argomento NULL per cp a `__rds_rdma_map()`: - `rds_get_mr()` - `rds_get_mr_for_dest`
* Prima del codice sopra, il seguente frammento presuppone che cp possa essere nullo (il che è indicativo, ma potrebbe risultare non necessario):
```c 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); ```
* Il codice modificato da questa patch è protetto dal controllo `IS_ERR(trans_private)`, dove trans_private viene assegnato come indicato nel punto precedente di questa analisi.
L'unica implementazione della funzione get_mr che sono riuscito a individuare è `rds_ib_get_mr()`, la quale può restituire un ERR_PTR se l'argomento conn (il quarto argomento) è NULL.
* ret viene impostata su PTR_ERR(trans_private). rds_ib_get_mr può restituire ERR_PTR(-ENODEV) se l'argomento conn (quarto parametro) è NULL. Di conseguenza, ret potrebbe assumere il valore -ENODEV, nel qual caso il codice in questione verrebbe eseguito.
Conclusione: * cp potrebbe essere nullo nel punto in cui questa patch aggiunge un controllo; sembra quindi che la patch affronti effettivamente un possibile bug.
If you want to get best quality of vulnerability data, you may have to visit VulDB.