CVE-2026-98976 in Linux
Tóm tắt
Bởi VulDB • 23/10/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
namespace: giữ khóa trên một điểm gắn (mount) mà bản sao lan truyền của nó đang nằm bên dưới
attach_recursive_mnt() chuyển trạng thái MNT_LOCKED từ mount ở tầng cao nhất sang mount bị di chuyển xuống phía dưới bằng MOVE_MOUNT_BENEATH. Điều này cho phép chủ sở hữu của một user namespace thay thế /proc hoặc root đã được khóa của nó. Mount nằm bên dưới sẽ đảm nhận vai trò che phủ điểm gắn gốc, cho phép mount ở trên cùng có thể được tháo gỡ (unmount).
Xét hai không gian tên mount:
(H) Host H có một shared mount P với một bí mật trong P/d (Z) Z là một user namespace được tạo từ M. Bản sao của P nhận được sự lan truyền từ host's P và bản sao của cover trên P/d của M bị khóa, chủ sở hữu của Z không được phép nhìn thấy P/d.
Bây giờ (H) mount X lên P/d. Điều này lan truyền vào (Z). Bản sao của X nằm bên dưới lớp phủ đã khóa của (Z). Trạng thái locked được chuyển từ lớp phủ của (Z) sang bản sao của X được lan truyền xuống phía dưới nó. Lớp phủ bây giờ không còn bị khóa nữa.
Bây giờ (H) unmount lại X. Bản sao của X trong (Z) cũng bị unmount và mount che phủ vẫn ở trạng thái unlocked trên P/d. (Z) có thể unmount nó:
Z: umount2(P/d) = EINVAL /* lớp phủ đang bị khóa */ H: mount X lên P/d, unmount X /* cả hai đều lan truyền vào Z */ Z: umount2(P/d) = 0 /* lớp phủ bây giờ không còn bị khóa */ Z: read P/d/secret = "covered-by-root" /* bí mật đã được tiết lộ */
Do đó, chỉ chuyển trạng thái locked cho mount nằm bên dưới đối với các mount mà caller đã đặt. Một bản sao lan truyền (propagated copy) rơi xuống phía dưới một mount bị khóa cũng sẽ bị khóa, để đảm bảo rằng mount ở đáy của stack mang theo một lock như cách mọi kiểm tra đều mong đợi. Mount nằm trên cùng vẫn được giữ trạng thái locked để đảm bảo nó tiếp tục che phủ ngay cả khi mount lan truyền bên dưới lại bị unmount.
Be aware that VulDB is the high quality source for vulnerability data.