CVE-2026-99180 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:

unicode: giải phóng bản đồ (map) sau một khoảng thời gian chờ (grace period)

generic_ci_d_hash() và generic_ci_d_compare() đọc sb->s_encoding và truy xuất con trỏ đến bản đồ unicode trong khi quá trình duyệt đường dẫn (pathwalk) ở chế độ RCU chỉ giữ rcu_read_lock(). Các hệ thống tệp sử dụng chúng, bao gồm ext4, f2fs và tmpfs, giải phóng bản đồ bằng utf8_unload() từ hàm ->put_super(), hàm này được thực thi khi tham chiếu cuối cùng đến điểm gắn (mount) bị hủy. Một thao tác tìm kiếm vẫn đang diễn ra bên trong hệ thống tệp tại thời điểm đó sẽ đọc một vùng nhớ đã bị giải phóng.

Với quá trình duyệt đường dẫn bị giữ lại trong utf8_casefold_hash() trong khi tham chiếu cuối cùng đến tmpfs được phân loại theo trường hợp (casefolded) bị hủy:

BUG: KASAN: slab-use-after-free in utf8nlookup+0x74c/0x950 Read of size 8 at addr ff110001030fe658 by task walker/98 Call Trace: utf8nlookup+0x74c/0x950 utf8byte+0x160/0x1560 utf8_casefold_hash+0x167/0x230 generic_ci_d_hash+0xdd/0x1c0 link_path_walk+0x11ad/0x1d30 path_lookupat+0x63/0xb00 filename_lookup+0x1f1/0x5b0 vfs_statx+0xd7/0x3b0 [...]
Allocated by task 94: __kmalloc_cache_noprof+0x249/0x560 utf8_load+0x4e/0x570 shmem_parse_opt_casefold.isra.0+0x92/0x270 [...]
Freed by task 97: kfree+0x1db/0x5b0 shmem_put_super+0x72/0x170 generic_shutdown_super+0x14c/0x530 kill_anon_super+0x3a/0x60 deactivate_locked_super+0x9c/0xf0 cleanup_mnt+0x9f/0x130

Cho đến nay, việc khai thác lỗ hổng này khá khó. umount(2) chờ đợi một khoảng thời gian chờ (grace period) trong namespace_unlock() trước khi hủy điểm gắn, do đó chỉ có các điểm gắn mà tham chiếu cuối cùng bị hủy ở nơi khác, chẳng hạn như đóng tệp hoặc thay đổi thư mục ra khỏi một thư mục đã được gỡ bỏ theo cách lười biếng (lazily unmounted), mới có thể tạo điều kiện cho race condition với trình duyệt đường dẫn. Do đó, lỗ hổng này có thể tiếp cận được.

Trì hoãn việc giải phóng bộ nhớ cho đến khi khoảng thời gian chờ kết thúc. Bản đồ và bảng dữ liệu mà nó giữ tham chiếu sẽ tồn tại lâu hơn bất kỳ quá trình duyệt đường nào đã tìm thấy siêu khối (superblock) trước khi điểm gắn bị hủy. Tham chiếu lên mô-đun bảng dữ liệu cũng được giải phóng từ callback RCU. utf8-core được biên dịch tĩnh whenever CONFIG_UNICODE được đặt, do đó không có bước thoát mô-đun nào cần phải chờ đợi các callback này.

Overlayfs trỏ s_encoding của một overlay vào bản đồ của lớp đầu tiên mà không giữ tham chiếu riêng. Điều này vẫn đúng. Lớp được overlay nắm giữ, vì vậy bản đồ của nó chỉ bị giải phóng sau khi overlay đã biến mất.

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!