cbcvebase.
CVE-2024-43834
published 2024-08-17

CVE-2024-43834: In the Linux kernel, the following vulnerability has been resolved: xdp: fix invalid wait context of page_pool_destroy() If the driver uses a page pool, it…

PriorityP420medium5.5CVSS 3.1
AVLACLPRLUINSUCNINAH
EPSS
0.24%
15.8th percentile
In the Linux kernel, the following vulnerability has been resolved: xdp: fix invalid wait context of page_pool_destroy() If the driver uses a page pool, it creates a page pool with page_pool_create(). The reference count of page pool is 1 as default. A page pool will be destroyed only when a reference count reaches 0. page_pool_destroy() is used to destroy page pool, it decreases a reference count. When a page pool is destroyed, ->disconnect() is called, which is mem_allocator_disconnect(). This function internally acquires mutex_lock(). If the driver uses XDP, it registers a memory model with xdp_rxq_info_reg_mem_model(). The xdp_rxq_info_reg_mem_model() internally increases a page pool reference count if a memory model is a page pool. Now the reference count is 2. To destroy a page pool, the driver should call both page_pool_destroy() and xdp_unreg_mem_model(). The xdp_unreg_mem_model() internally calls page_pool_destroy(). Only page_pool_destroy() decreases a reference count. If a driver calls page_pool_destroy() then xdp_unreg_mem_model(), we will face an invalid wait context warning. Because xdp_unreg_mem_model() calls page_pool_destroy() with rcu_read_lock(). The page_pool_destroy() internally acquires mutex_lock(). Splat looks like: [ BUG: Invalid wait context ] 6.10.0-rc6+ #4 Tainted: G W ethtool/1806 is trying to lock: ffffffff90387b90 (mem_id_lock){+.+.}-{4:4}, at: mem_allocator_disconnect+0x73/0x150 other info that might help us debug this: context-{5:5} 3 locks held by ethtool/1806: stack backtrace: CPU: 0 PID: 1806 Comm: ethtool Tainted: G W 6.10.0-rc6+ #4 f916f41f172891c800f2fed Hardware name: ASUS System Product Name/PRIME Z690-P D4, BIOS 0603 11/01/2021 Call Trace: dump_stack_lvl+0x7e/0xc0 __lock_acquire+0x1681/0x4de0 ? _printk+0x64/0xe0 ? __pfx_mark_lock.part.0+0x10/0x10 ? __pfx___lock_acquire+0x10/0x10 lock_acquire+0x1b3/0x580 ? mem_allocator_disconnect+0x73/0x150 ? __wake_up_klogd.part.0+0x16/0xc0 ? __pfx_lock_acquire+0x10/0x10 ? dump_stack

Affected

26 ranges· showing 25
VendorProductVersion rangeFixed in
debianlinux< linux 6.1.106-1 (bookworm)linux 6.1.106-1 (bookworm)
debianlinux-6.1< linux 6.1.106-1 (bookworm)linux 6.1.106-1 (bookworm)
linuxlinux
linuxlinux
linuxlinux
linuxlinux>= 5.3.18 < 5.45.4
linuxlinux>= 5.4.5 < 5.55.5
linuxlinux>= c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 < be9d08ff102df3ac4f66e826ea935cf3af63a4bdbe9d08ff102df3ac4f66e826ea935cf3af63a4bd
linuxlinux>= c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 < 6c390ef198aa69795427a5cb5fd7cb4bc7e6cd7a6c390ef198aa69795427a5cb5fd7cb4bc7e6cd7a
linuxlinux>= c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 < 3fc1be360b99baeea15cdee3cf94252cd3a72d263fc1be360b99baeea15cdee3cf94252cd3a72d26
linuxlinux>= c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 < bf0ce5aa5f2525ed1b921ba36de96e458e77f482bf0ce5aa5f2525ed1b921ba36de96e458e77f482
linuxlinux>= c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 < 12144069209eec7f2090ce9afa15acdcc2c2a53712144069209eec7f2090ce9afa15acdcc2c2a537
linuxlinux>= c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 < 59a931c5b732ca5fc2ca727f5a72aeabaafa85ec59a931c5b732ca5fc2ca727f5a72aeabaafa85ec
linuxlinux_kernel>= 0 < 5.10.226-15.10.226-1
linuxlinux_kernel>= 0 < 6.1.106-16.1.106-1
linuxlinux_kernel>= 0 < 6.10.3-16.10.3-1
linuxlinux_kernel>= 0 < 6.10.3-16.10.3-1
linuxlinux_kernel>= 0 < 5.15.0-125.1355.15.0-125.135
linuxlinux_kernel>= 0 < 6.8.0-50.516.8.0-50.51
linuxlinux_kernel>= 5.3.18 < 5.45.4
linuxlinux_kernel>= 5.4.5 < 5.55.5
linuxlinux_kernel>= 5.5 < 6.1.1036.1.103
linuxlinux_kernel>= 6.2 < 6.6.446.6.44
linuxlinux_kernel>= 6.7 < 6.10.36.10.3
msrccbl2_kernel_5.15.176.3-1_on_cbl_mariner_2.0

CVSS provenance

nvdv3.15.5MEDIUMCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
osv8.8HIGH
vendor_ubuntu8.8HIGH
vendor_debian5.5MEDIUM
vendor_msrc5.5MEDIUM
vendor_redhat5.5MEDIUM
Stop checking back — get the weekly exploitation signal.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.