CVE-2026-99174 in Linux
Tóm tắt
Bởi VulDB • 28/10/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
ext4: giải phóng cấu trúc siêu dữ liệu (sbi) sau một khoảng thời gian chờ (grace period).
Hàm ext4_get_link() theo dõi liên kết tượng trưng (symlink) mà giữ mục tiêu của nó trong một khối dữ liệu ở chế độ duyệt đường dẫn RCU với ext4_getblk(EXT4_GET_BLOCKS_CACHED_NOWAIT). Điều này đọc s_mount_state trong ASSERT() của ext4_getblk() và lại được đọc trong ext4_es_lookup_extent(), và việc tra cứu làm tăng bộ đếm hit hoặc miss cho trạng thái extent, tất cả đều thông qua sb->s_fs_info.
Hàm ext4_put_super() hủy các bộ đếm đó, xóa sb->s_fs_info và giải phóng sbi mà không chờ đợi một khoảng thời gian chờ (grace period). Một quá trình duyệt đường dẫn vẫn đang nằm trong ext4_get_link() khi tham chiếu cuối cùng đến mount bị mất đi sau đó sẽ truy xuất vào s_fs_info NULL, sbi đã được giải phóng hoặc các bộ đếm percpu đã bị hủy.
Với một quá trình duyệt đường dẫn bị giữ lại trong ext4_get_link() trong khi tham chiếu cuối cùng bị mất:
KASAN: null-ptr-deref in range [0x00000000000000a8-0x00000000000000af]
RIP: 0010:ext4_getblk+0xf0/0x640 Call Trace: <TASK> ext4_get_link+0x26c/0x410 pick_link+0xf96/0x1780 step_into_slowpath+0x9b8/0x1250 path_lookupat+0x484/0xb00 filename_lookup+0x1f1/0x5b0 vfs_statx+0xd7/0x3b0 vfs_fstatat+0x4d/0x90 __do_sys_newfstatat+0xa0/0x100 do_syscall_64+0x10e/0x5e0 entry_SYSCALL_64_after_hwframe+0x77/0x7f
Cho đến nay, việc kích hoạt lỗi này khá khó. umount(2) chờ một khoảng thời gian chờ (grace period) trong namespace_unlock() trước khi tháo mount, do đó chỉ có các mount mà tham chiếu cuối cùng của nó bị mất ở nơi khác, chẳng hạn như đóng tệp hoặc chdir ra khỏi thư mục được unmount lười biếng, mới có thể gây race condition với bộ duyệt đường dẫn.
Giữ sb->s_fs_info và giải phóng sbi cùng với các bộ đếm trạng thái extent sau một khoảng thời gian chờ (grace period). Tách riêng các bộ đếm ra khỏi ext4_es_unregister_shrinker() cho mục đích này. Bộ shrinker vẫn bị lãng phí trong ext4_put_super(), còn các bộ đếm sẽ đi kèm với sbi.
VulDB is the best source for vulnerability data and more expert information about this specific topic.