Skip to main content

CVE-2024-46678: Vulnerability in Linux Linux

High
VulnerabilityCVE-2024-46678cvecve-2024-46678
Published: Fri Sep 13 2024 (09/13/2024, 05:29:12 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

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.

AI-Powered Analysis

AILast updated: 06/27/2025, 21:12:04 UTC

Technical Analysis

CVE-2024-46678 is a vulnerability identified in the Linux kernel's bonding driver, specifically related to the handling of IPsec (Internet Protocol Security) locking mechanisms. The issue arises because the bonding driver uses a spin lock (ipsec_lock) to protect the ipsec_list data structure. However, certain operations on the xfrmdev (transform device) state, such as xdo_dev_state_add and xdo_dev_state_delete, which are invoked during changes to the bonding driver's active slave interface, may sleep. Using a spin lock in code paths that can sleep leads to a "scheduling while atomic" bug, which is a critical kernel error indicating that the kernel attempted to schedule (sleep) while holding a spin lock, violating kernel locking rules. This results in kernel warnings and potential system instability or crashes. The vulnerability is rooted in the inappropriate use of a spin lock where a mutex should be used. The fix involves changing ipsec_lock from a spin lock to a mutex, allowing the protected code to sleep safely without triggering scheduling errors. The affected functions bond_ipsec_add_sa_all and bond_ipsec_del_sa_all, called only from bond_change_active_slave (which requires holding the RTNL lock), interact with xfrmdev operations that can sleep. Therefore, replacing the spin lock with a mutex resolves the issue by ensuring proper synchronization without violating kernel locking constraints. This vulnerability affects specific Linux kernel versions identified by commit hashes, including versions around 6.9.0-rc4+. The issue manifests as kernel BUG messages and call traces during bonding active slave changes, potentially causing system instability or crashes. Although no known exploits are reported in the wild, the vulnerability impacts the kernel's networking stack, particularly in environments using bonding interfaces with IPsec offloading or integration, such as those using Mellanox mlx5_core drivers for cryptographic operations. In summary, CVE-2024-46678 is a kernel-level synchronization bug in the bonding driver's IPsec locking mechanism that can lead to kernel panics or instability due to improper locking, resolved by switching from a spin lock to a mutex.

Potential Impact

For European organizations, the impact of CVE-2024-46678 can be significant, especially for enterprises and service providers relying on Linux-based systems with network bonding configurations and IPsec security features. Bonding is commonly used in data centers, cloud infrastructure, and enterprise networks to provide redundancy and increased throughput by aggregating multiple network interfaces. IPsec is widely deployed for secure VPN tunnels and encrypted communications. If exploited or triggered unintentionally, this vulnerability can cause kernel panics or system crashes, leading to denial of service (DoS) conditions on critical network infrastructure. This can disrupt business operations, affect availability of services, and potentially cause data loss or corruption if systems reboot unexpectedly. Systems using Mellanox mlx5 network cards with IPsec offloading are particularly at risk, as the bug appears in the interaction between bonding and mlx5_core drivers. Given the kernel-level nature of the bug, it affects the integrity and availability of affected systems. Confidentiality impact is indirect but possible if system instability leads to misconfigurations or exposure during recovery. The vulnerability does not require user interaction but does require the system to be configured with bonding and IPsec features, which are common in enterprise and cloud environments. European organizations with critical infrastructure, cloud providers, telecommunications companies, and enterprises with complex Linux networking setups are at higher risk of operational disruption. The lack of known exploits reduces immediate risk, but the potential for accidental triggering or future exploitation exists.

Mitigation Recommendations

1. Apply Kernel Updates: Immediately update Linux kernel versions to those including the fix that changes ipsec_lock from a spin lock to a mutex. Monitor vendor advisories and apply patches as soon as they are available. 2. Audit Network Configurations: Identify systems using bonding interfaces combined with IPsec configurations, especially those employing Mellanox mlx5 network drivers. Prioritize patching and monitoring on these systems. 3. Limit Bonding and IPsec Usage: Where possible, temporarily disable bonding or IPsec offloading features on critical systems until patches are applied to reduce exposure. 4. Monitor Kernel Logs: Implement enhanced monitoring of kernel logs for "scheduling while atomic" errors or related BUG messages to detect attempts to trigger the vulnerability or accidental occurrences. 5. Test Updates in Staging: Before deploying kernel updates in production, perform thorough testing in staging environments to ensure stability and compatibility with existing network configurations. 6. Harden Network Infrastructure: Employ network segmentation and access controls to limit exposure of vulnerable systems to untrusted networks, reducing the risk of remote triggering. 7. Engage with Vendors: For organizations using Mellanox hardware, coordinate with hardware and driver vendors for any additional firmware or driver updates that complement the kernel fix. 8. Incident Response Preparedness: Prepare incident response plans for potential DoS events caused by kernel crashes, including rapid rollback and recovery procedures.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-09-11T15:12:18.248Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9820c4522896dcbdcdc3

Added to database: 5/21/2025, 9:08:48 AM

Last enriched: 6/27/2025, 9:12:04 PM

Last updated: 7/31/2025, 8:22:29 AM

Views: 9

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats