Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-46678— bonding: change ipsec_lock from spin lock to mutex

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于bonding组件错误地使用了自旋锁而不是互斥锁来保护ipsec_list。

CVSS 7.8 · High EPSS 0.17% · P7

Possible ATT&CK Techniques 1 AI

T1562.008

Affected Version Matrix 12

VendorProduct Version RangeStatus
Linux Linux 9a5605505d9c7dbfdb89cc29a8f5fc5cf9fd2334< 6b598069164ac1bb60996d6ff94e7f9169dbd2d3 affected
9a5605505d9c7dbfdb89cc29a8f5fc5cf9fd2334< 56354b0a2c24a7828eeed7de4b4dc9652d9affa3 affected
9a5605505d9c7dbfdb89cc29a8f5fc5cf9fd2334< 2aeeef906d5a526dc60cf4af92eda69836c39b1f affected
56ccdf868ab6010739a24a3d72c3e53fd0e1ace2 affected
42ec69b9cd7d1f9a8b7420807f3a5d899ca99d28 affected
5.10.54< 5.11 affected
5.13.6< 5.14 affected
5.14 affected
… +4 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-46678

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
bonding: change ipsec_lock from spin lock to mutex
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: bonding: change ipsec_lock from spin lock to mutex In the cited commit, bond->ipsec_lock is added to protect ipsec_list, hence xdo_dev_state_add and xdo_dev_state_delete are called inside this lock. As ipsec_lock is a spin lock and such xfrmdev ops may sleep, "scheduling while atomic" will be triggered when changing bond's active slave. [ 101.055189] BUG: scheduling while atomic: bash/902/0x00000200 [ 101.055726] Modules linked in: [ 101.058211] CPU: 3 PID: 902 Comm: bash Not tainted 6.9.0-rc4+ #1 [ 101.058760] Hardware name: [ 101.059434] Call Trace: [ 101.059436] <TASK> [ 101.060873] dump_stack_lvl+0x51/0x60 [ 101.061275] __schedule_bug+0x4e/0x60 [ 101.061682] __schedule+0x612/0x7c0 [ 101.062078] ? __mod_timer+0x25c/0x370 [ 101.062486] schedule+0x25/0xd0 [ 101.062845] schedule_timeout+0x77/0xf0 [ 101.063265] ? asm_common_interrupt+0x22/0x40 [ 101.063724] ? __bpf_trace_itimer_state+0x10/0x10 [ 101.064215] __wait_for_common+0x87/0x190 [ 101.064648] ? usleep_range_state+0x90/0x90 [ 101.065091] cmd_exec+0x437/0xb20 [mlx5_core] [ 101.065569] mlx5_cmd_do+0x1e/0x40 [mlx5_core] [ 101.066051] mlx5_cmd_exec+0x18/0x30 [mlx5_core] [ 101.066552] mlx5_crypto_create_dek_key+0xea/0x120 [mlx5_core] [ 101.067163] ? bonding_sysfs_store_option+0x4d/0x80 [bonding] [ 101.067738] ? kmalloc_trace+0x4d/0x350 [ 101.068156] mlx5_ipsec_create_sa_ctx+0x33/0x100 [mlx5_core] [ 101.068747] mlx5e_xfrm_add_state+0x47b/0xaa0 [mlx5_core] [ 101.069312] bond_change_active_slave+0x392/0x900 [bonding] [ 101.069868] bond_option_active_slave_set+0x1c2/0x240 [bonding] [ 101.070454] __bond_opt_set+0xa6/0x430 [bonding] [ 101.070935] __bond_opt_set_notify+0x2f/0x90 [bonding] [ 101.071453] bond_opt_tryset_rtnl+0x72/0xb0 [bonding] [ 101.071965] bonding_sysfs_store_option+0x4d/0x80 [bonding] [ 101.072567] kernfs_fop_write_iter+0x10c/0x1a0 [ 101.073033] vfs_write+0x2d8/0x400 [ 101.073416] ? alloc_fd+0x48/0x180 [ 101.073798] ksys_write+0x5f/0xe0 [ 101.074175] do_syscall_64+0x52/0x110 [ 101.074576] entry_SYSCALL_64_after_hwframe+0x4b/0x53 As bond_ipsec_add_sa_all and bond_ipsec_del_sa_all are only called from bond_change_active_slave, which requires holding the RTNL lock. And bond_ipsec_add_sa and bond_ipsec_del_sa are xfrm state xdo_dev_state_add and xdo_dev_state_delete APIs, which are in user context. So ipsec_lock doesn't have to be spin lock, change it to mutex, and thus the above issue can be resolved.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于bonding组件错误地使用了自旋锁而不是互斥锁来保护ipsec_list。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 9a5605505d9c7dbfdb89cc29a8f5fc5cf9fd2334 ~ 6b598069164ac1bb60996d6ff94e7f9169dbd2d3 -
Linux Linux 5.14 -

II. Public POCs for CVE-2024-46678

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-46678

请登录查看更多情报信息。

Patches & Fixes for CVE-2024-46678 (3)

Same Patch Batch · Linux · 2024-09-13 · 40 CVEs total

CVE-2024-46697 9.8 CRITICAL nfsd: ensure that nfsd4_fattr_args.context is zeroed out
CVE-2024-46695 9.8 CRITICAL selinux,smack: don't bypass permissions check in inode_setsecctx hook
CVE-2024-46696 9.8 CRITICAL nfsd: fix potential UAF in nfsd4_cb_getattr_release
CVE-2024-46690 9.8 CRITICAL nfsd: fix nfsd4_deleg_getattr_conflict in presence of third party lease
CVE-2024-46673 7.8 HIGH scsi: aacraid: Fix double-free on probe failure
CVE-2024-46713 7.8 HIGH perf/aux: Fix AUX buffer serialization
CVE-2024-46710 7.8 HIGH drm/vmwgfx: Prevent unmapping active read buffers
CVE-2024-46709 7.8 HIGH drm/vmwgfx: Fix prime with external buffers
CVE-2024-46705 7.8 HIGH drm/xe: reset mmio mappings with devm
CVE-2024-46687 7.8 HIGH btrfs: fix a use-after-free when hitting errors inside btrfs_submit_chunk()
CVE-2024-46674 7.8 HIGH usb: dwc3: st: fix probed platform device ref count on probe error path
CVE-2024-46683 7.8 HIGH drm/xe: prevent UAF around preempt fence
CVE-2024-46680 7.8 HIGH Bluetooth: btnxpuart: Fix random crash seen while removing driver
CVE-2024-46679 ethtool: check device is present when getting link settings
CVE-2024-46712 drm/vmwgfx: Disable coherent dumb buffers without 3d
CVE-2024-46711 mptcp: pm: fix ID 0 endp usage after multiple re-creations
CVE-2024-46675 usb: dwc3: core: Prevent USB core invalid event buffer address access
CVE-2024-46708 pinctrl: qcom: x1e80100: Fix special pin offsets
CVE-2024-46676 nfc: pn533: Add poll mod list filling check
CVE-2024-46707 KVM: arm64: Make ICC_*SGI*_EL1 undef in the absence of a vGICv3

Showing top 20 of 40 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-46678

No comments yet


Leave a comment