CVE-2025-71152 in Linux
Riassunto
di VulDB • 15/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
net: dsa: tenere correttamente traccia del riferimento al dispositivo di rete conduit
Descrizione del problema ------------------------
DSA presenta una gestione dei riferimenti (reference handling) per il dispositivo di rete conduit e relativo kobject complessa e confusa, che risulta errata e priva di senso logico.
Esistono due problemi distinti.
1. Il percorso OF, che utilizza `of_find_net_device_by_node()`, non rilascia mai il contatore dei riferimenti (refcount) incrementato sul kobject del conduit. In linea nominale, i percorsi OF e non-OF dovrebbero comportare l'acquisizione di conteggi dei riferimenti identici sugli oggetti; è già sospetto che `dsa_dev_to_net_device()` includa una chiamata a `put_device()`, la quale manca in `dsa_port_parse_of()`. Possiamo tuttavia verificare concretamente l'esistenza del problema. Con `CONFIG_DEBUG_KOBJECT_RELEASE=y`, se eseguiamo questo comando "prima" e "dopo" aver applicato questa patch:
(scollega il driver conduit per il dispositivo di rete eno2) echo 0000:00:00.2 > /sys/bus/pci/drivers/fsl_enetc/unbind
vediamo queste righe nella differenza dell'output, che appaiono solo con la patch applicata:
kobject: 'eno2' (ffff002009a3a6b8): kobject_release, parent 0000000000000000 (delayed 1000) kobject: '109' (ffff0020099d59a0): kobject_release, parent 0000000000000000 (delayed 1000)
2. Dopo aver trovato l'interfaccia conduit in un modo o nell'altro (OF oppure non-OF), questa può essere disregistrata in qualsiasi momento, e DSA rimane con un puntatore `cpu_dp->conduit` di lunga durata ma, in questo caso, obsoleto (stale). Mantenere il kobject sottostante del dispositivo di rete non è realmente d'aiuto: impedisce solo che venga liberato (ma non abbiamo mai bisogno diretto di tale kobject). Ciò che ci aiuta a impedire la disregistrazione del dispositivo di rete è il meccanismo parallelo dei riferimenti netdev (`dev_hold()` e `dev_put()`).
In realtà, utilizziamo implicitamente questo meccanismo di tracciamento netdev sulle porte utente fin dal commit 2f1e8ea726e9 ("net: dsa: link interfaces with the DSA master to get rid of lockdep warnings"), tramite `netdev_upper_dev_link()`. Tuttavia, trascorre comunque del tempo tra il codice iniziale di `of_find_net_device_by_node()` e la creazione della porta utente durante l'individuazione (probe) dello switch DSA; in questo intervallo temporale, il conduit potrebbe disregistrarsi senza che DDSA ne sia a conoscenza.
D
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.