CVE-2024-56592 in Linux信息

摘要

由 VulDB • 2026-05-30

在 Linux 内核中,已修复以下漏洞:

bpf:在 htab_unlock_bucket() 之后调用 free_htab_elem()

对于映射(maps)的哈希表(htab),当映射从 htab 中移除时,它可能持有该映射的最后一个引用。bpf_map_fd_put_ptr() 将调用 bpf_map_free_id() 以释放被移除映射元素的 ID。然而,bpf_map_fd_put_ptr() 是在持有桶锁(raw_spin_lock_t)的情况下被调用的,而 bpf_map_free_id() 试图获取 map_idr_lock(spinlock_t),从而触发以下 lockdep 警告:

============================= [ BUG: Invalid wait context ]
6.11.0-rc4+ #49 Not tainted ----------------------------- test_maps/4881 正在尝试锁定: ffffffff84884578 (map_idr_lock){+...}-{3:3}, 位于:bpf_map_free_id.part.0+0x21/0x70
可能有助于调试的其他信息: context-{5:5}
test_maps/4881 持有的 2 个锁: #0: ffffffff846caf60 (rcu_read_lock){....}-{1:3}, 位于:bpf_fd_htab_map_update_elem+0xf9/0x270
#1: ffff888149ced148 (&htab->lockdep_key#2){....}-{2:2}, 位于:htab_map_update_elem+0x178/0xa80
堆栈回溯: CPU: 0 UID: 0 PID: 4881 Comm: test_maps Not tainted 6.11.0-rc4+ #49 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x59/0x80 dump_stack+0x10/0x18 __lock_acquire+0x1338/0x23a0 lock_acquire+0x119/0x3a0 _raw_spin_lock+0x45/0x60 x64_sys_bpf+0x45/0x60 x64_sys_call+0x1b2a/0x20d0 do_syscall_64+0x5d/0x100 entry_SYSCALL_64_after_hwframe+0x76/0x7e

If you want to get best quality of vulnerability data, you may have to visit VulDB.

来源

Do you want to use VulDB in your project?

Use the official API to access entries easily!