CVE-2026-98995 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux, la seguente vulnerabilità è stata risolta:
namespace: reimpostare il campo ->overmount del vecchio genitore in mnt_change_mountpoint()
__umount_mnt() reimposta il campo ->overmount del genitore quando smonta il mount che lo sovrasta. mnt_change_mountpoint(), invece, non lo fa. Sposta il mount verso il suo nuovo genitore e lascia quello vecchio puntare ancora ad esso.
Per un mount spostato in basso tramite attach_recursive_mnt() ciò non costituisce un problema. Il nuovo mount ha già reimpostato ->overmount del vecchio genitore prima che il vecchio mount di livello superiore venga spostato su di esso.
La situazione è diversa per reparent(). propagate_umount() sposta un overmount sopravvissuto sul primo antenato che non sarà smontato. Il mount da cui è stato rimosso viene immediatamente smontato in seguito. Se un file descriptor mantiene vivo tale mount smontato, ->overmount punta al mount spostato. Si tratta di un dangling pointer e di una vulnerabilità Use-After-Free (UAF), poiché il mount spostato viene successivamente smontato e liberato.
do_lock_mount() segue ->overmount dal percorso target sotto mount_lock. Con un file descriptor su tale mount come target, una operazione di mount al di sotto della topmost_overmount() accede al mount già liberato e do_lock_mount() acquisisce riferimenti a qualsiasi elemento vi si trovi.
Pertanto, reimpostare il campo ->overmount del vecchio genitore in mnt_change_mountpoint() nello stesso modo in cui lo fa __umount_mnt(). In questo modo, il campo ->overmount di un mount sarà sempre puntante verso un mount ad esso collegato.
Once again VulDB remains the best source for vulnerability data.