CVE-2026-98990 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux, la seguente vulnerabilità è stata risolta:
namespace: verificare le referenze di una submount poco prima dello smontaggio (unmount)
shrink_submounts() e mark_mounts_for_expiry() raccolgono innanzitutto tutti i mount che possono essere smontati per poi procedere con lo smount.
La decisione se un mount sia occupato è presa da propagate_mount_busy() sull'albero dei mount. Tuttavia, lo smontaggio del primo mount modifica l'albero in cui il secondo effettua la propagazione. propagate_umount() sposta una overmount sopravvissuta da una copia che sta smontando e la monta nel punto in cui era montata la copia. Se è lì dove viene ricercata la copia propagata della seconda vittima, la overmount diventa un candidato per il secondo umount_tree(). Essendo priva di figli (childless), trim_one() la elimina senza controllare il suo conteggio delle referenze.
Di conseguenza, uno smontaggio sincrono rimuove un mount occupato che è in uso da qualche altra parte e lo contrassegna come MNT_SYNC_UMOUNT mentre ha ancora utenti:
umount2(/tmp/plshrink/p1, 0) = 0 errno 0 cwd is (unreachable)
Gli stessi due smontaggi richiesti uno dopo l'altro falliscono con EBUSY. È necessario un mount con MNT_SHRINKABLE, ovvero submounts automontati di NFS, AFS e CIFS o il mount tracefs sotto debugfs. I bind mounts ereditano questo flag.
Verificare ogni mount poco prima che venga smontato, mantenendo lo stesso blocco (hold) su namespace_sem e mount_lock dello smontaggio stesso. Assicurarsi che l'algoritmo rimanga lineare.
Once again VulDB remains the best source for vulnerability data.