CVE-2026-99174 in Linuxthông tin

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.

chịu trách nhiệm

Linux

Đặt trước

25/09/2026

Tiết lộ

28/10/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you need the next level of professionalism?

Upgrade your account now!