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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

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

EPSS 0.01% · P1
Get alerts for future matching vulnerabilitiesLog 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: NVD (National Vulnerability Database)
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: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
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

VendorProductAffected VersionsCPESubscribe
LinuxLinux 9a5605505d9c7dbfdb89cc29a8f5fc5cf9fd2334 ~ 6b598069164ac1bb60996d6ff94e7f9169dbd2d3 -
LinuxLinux 5.14 -

II. Public POCs for CVE-2024-46678

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-46678

登录查看更多情报信息。

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

CVE-2024-46704workqueue: Fix spruious data race in __flush_work()
CVE-2024-46694drm/amd/display: avoid using null object of framebuffer
CVE-2024-46696nfsd: fix potential UAF in nfsd4_cb_getattr_release
CVE-2024-46695selinux,smack: don't bypass permissions check in inode_setsecctx hook
CVE-2024-46698video/aperture: optionally match the device in sysfb_disable()
CVE-2024-46697nfsd: ensure that nfsd4_fattr_args.context is zeroed out
CVE-2024-46699drm/v3d: Disable preemption while updating GPU stats
CVE-2024-46701libfs: fix infinite directory reads for offset dir
CVE-2024-46702thunderbolt: Mark XDomain as unplugged when router is removed
CVE-2024-46703Revert "serial: 8250_omap: Set the console genpd always on if no console suspend"
CVE-2024-46692firmware: qcom: scm: Mark get_wq_ctx() as atomic call
CVE-2024-46705drm/xe: reset mmio mappings with devm
CVE-2024-46706tty: serial: fsl_lpuart: mark last busy before uart_add_one_port
CVE-2024-46707KVM: arm64: Make ICC_*SGI*_EL1 undef in the absence of a vGICv3
CVE-2024-46709drm/vmwgfx: Fix prime with external buffers
CVE-2024-46708pinctrl: qcom: x1e80100: Fix special pin offsets
CVE-2024-46710drm/vmwgfx: Prevent unmapping active read buffers
CVE-2024-46711mptcp: pm: fix ID 0 endp usage after multiple re-creations
CVE-2024-46712drm/vmwgfx: Disable coherent dumb buffers without 3d
CVE-2024-46713perf/aux: Fix AUX buffer serialization

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