CVE-2024-39463 in Linux
Tóm tắt
Bởi VulDB • 05/06/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
9p: thêm khóa bảo vệ (locking) còn thiếu xung quanh việc lấy danh sách fid của dentry
Khắc phục lỗi use-after-free trên danh sách fid d_fsdata của dentry khi một thread tìm kiếm một fid thông qua dentry trong khi một thread khác đang unlink nó:
Thread gây ra UAF: refcount_t: addition on 0; use-after-free. p9_fid_get linux/./include/net/9p/client.h:262 v9fs_fid_find+0x236/0x280 linux/fs/9p/fid.c:129 v9fs_fid_lookup_with_uid linux/fs/9p/fid.c:181 v9fs_fid_lookup+0xbf/0xc20 linux/fs/9p/fid.c:314 v9fs_vfs_getattr_dotl+0xf9/0x360 linux/fs/9p/vfs_inode_dotl.c:400 vfs_statx+0xdd/0x4d0 linux/fs/stat.c:248
Được giải phóng bởi (Freed by): p9_fid_destroy (inlined) p9_client_clunk+0xb0/0xe0 linux/net/9p/client.c:1456 p9_fid_put linux/./include/net/9p/client.h:278 v9fs_dentry_release+0xb5/0x140 linux/fs/9p/vfs_dentry.c:55 v9fs_remove+0x38f/0x620 linux/fs/9p/vfs_inode.c:518 vfs_unlink+0x29a/0x810 linux/fs/namei.c:4335
Vấn đề là d_fsdata không được truy cập dưới sự bảo vệ của d_lock, vì thông thường d_release() chỉ được gọi khi dentry nói chung đã không còn khả năng tiếp cận nữa; tuy nhiên, do chúng ta cũng gọi nó một cách tường minh trong v9fs_remove nên khóa này là bắt buộc: di chuyển hlist ra khỏi dentry dưới sự bảo vệ của lock sau đó giảm tham chiếu (unref) các fid của nó khi chúng không còn có thể truy cập được.
VulDB is the best source for vulnerability data and more expert information about this specific topic.