CVE-2022-48842: Vulnerability in Linux Linux
In the Linux kernel, the following vulnerability has been resolved: ice: Fix race condition during interface enslave Commit 5dbbbd01cbba83 ("ice: Avoid RTNL lock when re-creating auxiliary device") changes a process of re-creation of aux device so ice_plug_aux_dev() is called from ice_service_task() context. This unfortunately opens a race window that can result in dead-lock when interface has left LAG and immediately enters LAG again. Reproducer: ``` #!/bin/sh ip link add lag0 type bond mode 1 miimon 100 ip link set lag0 for n in {1..10}; do echo Cycle: $n ip link set ens7f0 master lag0 sleep 1 ip link set ens7f0 nomaster done ``` This results in: [20976.208697] Workqueue: ice ice_service_task [ice] [20976.213422] Call Trace: [20976.215871] __schedule+0x2d1/0x830 [20976.219364] schedule+0x35/0xa0 [20976.222510] schedule_preempt_disabled+0xa/0x10 [20976.227043] __mutex_lock.isra.7+0x310/0x420 [20976.235071] enum_all_gids_of_dev_cb+0x1c/0x100 [ib_core] [20976.251215] ib_enum_roce_netdev+0xa4/0xe0 [ib_core] [20976.256192] ib_cache_setup_one+0x33/0xa0 [ib_core] [20976.261079] ib_register_device+0x40d/0x580 [ib_core] [20976.266139] irdma_ib_register_device+0x129/0x250 [irdma] [20976.281409] irdma_probe+0x2c1/0x360 [irdma] [20976.285691] auxiliary_bus_probe+0x45/0x70 [20976.289790] really_probe+0x1f2/0x480 [20976.298509] driver_probe_device+0x49/0xc0 [20976.302609] bus_for_each_drv+0x79/0xc0 [20976.306448] __device_attach+0xdc/0x160 [20976.310286] bus_probe_device+0x9d/0xb0 [20976.314128] device_add+0x43c/0x890 [20976.321287] __auxiliary_device_add+0x43/0x60 [20976.325644] ice_plug_aux_dev+0xb2/0x100 [ice] [20976.330109] ice_service_task+0xd0c/0xed0 [ice] [20976.342591] process_one_work+0x1a7/0x360 [20976.350536] worker_thread+0x30/0x390 [20976.358128] kthread+0x10a/0x120 [20976.365547] ret_from_fork+0x1f/0x40 ... [20976.438030] task:ip state:D stack: 0 pid:213658 ppid:213627 flags:0x00004084 [20976.446469] Call Trace: [20976.448921] __schedule+0x2d1/0x830 [20976.452414] schedule+0x35/0xa0 [20976.455559] schedule_preempt_disabled+0xa/0x10 [20976.460090] __mutex_lock.isra.7+0x310/0x420 [20976.464364] device_del+0x36/0x3c0 [20976.467772] ice_unplug_aux_dev+0x1a/0x40 [ice] [20976.472313] ice_lag_event_handler+0x2a2/0x520 [ice] [20976.477288] notifier_call_chain+0x47/0x70 [20976.481386] __netdev_upper_dev_link+0x18b/0x280 [20976.489845] bond_enslave+0xe05/0x1790 [bonding] [20976.494475] do_setlink+0x336/0xf50 [20976.502517] __rtnl_newlink+0x529/0x8b0 [20976.543441] rtnl_newlink+0x43/0x60 [20976.546934] rtnetlink_rcv_msg+0x2b1/0x360 [20976.559238] netlink_rcv_skb+0x4c/0x120 [20976.563079] netlink_unicast+0x196/0x230 [20976.567005] netlink_sendmsg+0x204/0x3d0 [20976.570930] sock_sendmsg+0x4c/0x50 [20976.574423] ____sys_sendmsg+0x1eb/0x250 [20976.586807] ___sys_sendmsg+0x7c/0xc0 [20976.606353] __sys_sendmsg+0x57/0xa0 [20976.609930] do_syscall_64+0x5b/0x1a0 [20976.613598] entry_SYSCALL_64_after_hwframe+0x65/0xca 1. Command 'ip link ... set nomaster' causes that ice_plug_aux_dev() is called from ice_service_task() context, aux device is created and associated device->lock is taken. 2. Command 'ip link ... set master...' calls ice's notifier under RTNL lock and that notifier calls ice_unplug_aux_dev(). That function tries to take aux device->lock but this is already taken by ice_plug_aux_dev() in step 1 3. Later ice_plug_aux_dev() tries to take RTNL lock but this is already taken in step 2 4. Dead-lock The patch fixes this issue by following changes: - Bit ICE_FLAG_PLUG_AUX_DEV is kept to be set during ice_plug_aux_dev() call in ice_service_task() - The bit is checked in ice_clear_rdma_cap() and only if it is not set then ice_unplug_aux_dev() is called. If it is set (in other words plugging of aux device was requested and ice_plug_aux_dev() is potentially running) then the function only clears the ---truncated---
AI Analysis
Technical Summary
CVE-2022-48842 is a race condition vulnerability in the Linux kernel's ice network driver, which manages Intel Ethernet devices. The flaw arises during the process of re-creating auxiliary devices when network interfaces are enslaved or released from Link Aggregation Groups (LAGs). Specifically, the vulnerability occurs because the function ice_plug_aux_dev() is called from the ice_service_task() context, creating a race window that can lead to a deadlock. The deadlock happens when an interface leaves a LAG and immediately re-enters it, causing conflicting lock acquisitions between ice_plug_aux_dev() and ice_unplug_aux_dev() functions. The issue is triggered by commands that repeatedly set and unset the master device of a network interface, as demonstrated by the provided shell script. The deadlock manifests as kernel workqueue stalls and blocked mutex locks, which can halt network device operations and potentially impact system stability. The patch resolves this by introducing a flag (ICE_FLAG_PLUG_AUX_DEV) to coordinate the auxiliary device plugging process and prevent simultaneous conflicting lock acquisitions, thereby eliminating the deadlock condition. This vulnerability affects specific Linux kernel versions identified by commit hashes and is relevant to systems using the ice driver for Intel Ethernet hardware.
Potential Impact
For European organizations, this vulnerability can cause network interface deadlocks leading to denial of service (DoS) conditions on affected servers or network appliances. Systems relying on Intel Ethernet devices managed by the ice driver, especially those using LAG configurations for redundancy or bandwidth aggregation, may experience network outages or degraded performance. This can disrupt critical services, including data center operations, cloud infrastructure, and enterprise networking. The deadlock could also complicate incident response and recovery efforts due to kernel-level hangs. While the vulnerability does not appear to allow privilege escalation or remote code execution, the resulting availability impact on network infrastructure can be significant, particularly for organizations with high uptime requirements or those operating critical infrastructure. Given the widespread use of Linux in European data centers, cloud providers, and enterprise environments, the potential for operational disruption is notable.
Mitigation Recommendations
European organizations should promptly apply the official Linux kernel patches that address CVE-2022-48842, ensuring that the ice driver is updated to the fixed versions containing the ICE_FLAG_PLUG_AUX_DEV coordination mechanism. Until patches are applied, administrators should avoid rapid or automated cycling of network interfaces between LAG membership states, as this triggers the deadlock. Network configuration management tools and orchestration scripts should be reviewed and adjusted to prevent rapid enslaving and releasing of interfaces in bonding or LAG setups. Monitoring kernel logs for ice driver-related deadlock symptoms can help detect exploitation attempts or accidental triggers. Additionally, organizations should consider isolating critical network functions on hardware or virtualized environments not affected by this vulnerability if immediate patching is not feasible. Coordination with hardware vendors to confirm driver versions and compatibility is recommended to ensure comprehensive remediation.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Italy, Spain, Poland, Belgium
CVE-2022-48842: Vulnerability in Linux Linux
Description
In the Linux kernel, the following vulnerability has been resolved: ice: Fix race condition during interface enslave Commit 5dbbbd01cbba83 ("ice: Avoid RTNL lock when re-creating auxiliary device") changes a process of re-creation of aux device so ice_plug_aux_dev() is called from ice_service_task() context. This unfortunately opens a race window that can result in dead-lock when interface has left LAG and immediately enters LAG again. Reproducer: ``` #!/bin/sh ip link add lag0 type bond mode 1 miimon 100 ip link set lag0 for n in {1..10}; do echo Cycle: $n ip link set ens7f0 master lag0 sleep 1 ip link set ens7f0 nomaster done ``` This results in: [20976.208697] Workqueue: ice ice_service_task [ice] [20976.213422] Call Trace: [20976.215871] __schedule+0x2d1/0x830 [20976.219364] schedule+0x35/0xa0 [20976.222510] schedule_preempt_disabled+0xa/0x10 [20976.227043] __mutex_lock.isra.7+0x310/0x420 [20976.235071] enum_all_gids_of_dev_cb+0x1c/0x100 [ib_core] [20976.251215] ib_enum_roce_netdev+0xa4/0xe0 [ib_core] [20976.256192] ib_cache_setup_one+0x33/0xa0 [ib_core] [20976.261079] ib_register_device+0x40d/0x580 [ib_core] [20976.266139] irdma_ib_register_device+0x129/0x250 [irdma] [20976.281409] irdma_probe+0x2c1/0x360 [irdma] [20976.285691] auxiliary_bus_probe+0x45/0x70 [20976.289790] really_probe+0x1f2/0x480 [20976.298509] driver_probe_device+0x49/0xc0 [20976.302609] bus_for_each_drv+0x79/0xc0 [20976.306448] __device_attach+0xdc/0x160 [20976.310286] bus_probe_device+0x9d/0xb0 [20976.314128] device_add+0x43c/0x890 [20976.321287] __auxiliary_device_add+0x43/0x60 [20976.325644] ice_plug_aux_dev+0xb2/0x100 [ice] [20976.330109] ice_service_task+0xd0c/0xed0 [ice] [20976.342591] process_one_work+0x1a7/0x360 [20976.350536] worker_thread+0x30/0x390 [20976.358128] kthread+0x10a/0x120 [20976.365547] ret_from_fork+0x1f/0x40 ... [20976.438030] task:ip state:D stack: 0 pid:213658 ppid:213627 flags:0x00004084 [20976.446469] Call Trace: [20976.448921] __schedule+0x2d1/0x830 [20976.452414] schedule+0x35/0xa0 [20976.455559] schedule_preempt_disabled+0xa/0x10 [20976.460090] __mutex_lock.isra.7+0x310/0x420 [20976.464364] device_del+0x36/0x3c0 [20976.467772] ice_unplug_aux_dev+0x1a/0x40 [ice] [20976.472313] ice_lag_event_handler+0x2a2/0x520 [ice] [20976.477288] notifier_call_chain+0x47/0x70 [20976.481386] __netdev_upper_dev_link+0x18b/0x280 [20976.489845] bond_enslave+0xe05/0x1790 [bonding] [20976.494475] do_setlink+0x336/0xf50 [20976.502517] __rtnl_newlink+0x529/0x8b0 [20976.543441] rtnl_newlink+0x43/0x60 [20976.546934] rtnetlink_rcv_msg+0x2b1/0x360 [20976.559238] netlink_rcv_skb+0x4c/0x120 [20976.563079] netlink_unicast+0x196/0x230 [20976.567005] netlink_sendmsg+0x204/0x3d0 [20976.570930] sock_sendmsg+0x4c/0x50 [20976.574423] ____sys_sendmsg+0x1eb/0x250 [20976.586807] ___sys_sendmsg+0x7c/0xc0 [20976.606353] __sys_sendmsg+0x57/0xa0 [20976.609930] do_syscall_64+0x5b/0x1a0 [20976.613598] entry_SYSCALL_64_after_hwframe+0x65/0xca 1. Command 'ip link ... set nomaster' causes that ice_plug_aux_dev() is called from ice_service_task() context, aux device is created and associated device->lock is taken. 2. Command 'ip link ... set master...' calls ice's notifier under RTNL lock and that notifier calls ice_unplug_aux_dev(). That function tries to take aux device->lock but this is already taken by ice_plug_aux_dev() in step 1 3. Later ice_plug_aux_dev() tries to take RTNL lock but this is already taken in step 2 4. Dead-lock The patch fixes this issue by following changes: - Bit ICE_FLAG_PLUG_AUX_DEV is kept to be set during ice_plug_aux_dev() call in ice_service_task() - The bit is checked in ice_clear_rdma_cap() and only if it is not set then ice_unplug_aux_dev() is called. If it is set (in other words plugging of aux device was requested and ice_plug_aux_dev() is potentially running) then the function only clears the ---truncated---
AI-Powered Analysis
Technical Analysis
CVE-2022-48842 is a race condition vulnerability in the Linux kernel's ice network driver, which manages Intel Ethernet devices. The flaw arises during the process of re-creating auxiliary devices when network interfaces are enslaved or released from Link Aggregation Groups (LAGs). Specifically, the vulnerability occurs because the function ice_plug_aux_dev() is called from the ice_service_task() context, creating a race window that can lead to a deadlock. The deadlock happens when an interface leaves a LAG and immediately re-enters it, causing conflicting lock acquisitions between ice_plug_aux_dev() and ice_unplug_aux_dev() functions. The issue is triggered by commands that repeatedly set and unset the master device of a network interface, as demonstrated by the provided shell script. The deadlock manifests as kernel workqueue stalls and blocked mutex locks, which can halt network device operations and potentially impact system stability. The patch resolves this by introducing a flag (ICE_FLAG_PLUG_AUX_DEV) to coordinate the auxiliary device plugging process and prevent simultaneous conflicting lock acquisitions, thereby eliminating the deadlock condition. This vulnerability affects specific Linux kernel versions identified by commit hashes and is relevant to systems using the ice driver for Intel Ethernet hardware.
Potential Impact
For European organizations, this vulnerability can cause network interface deadlocks leading to denial of service (DoS) conditions on affected servers or network appliances. Systems relying on Intel Ethernet devices managed by the ice driver, especially those using LAG configurations for redundancy or bandwidth aggregation, may experience network outages or degraded performance. This can disrupt critical services, including data center operations, cloud infrastructure, and enterprise networking. The deadlock could also complicate incident response and recovery efforts due to kernel-level hangs. While the vulnerability does not appear to allow privilege escalation or remote code execution, the resulting availability impact on network infrastructure can be significant, particularly for organizations with high uptime requirements or those operating critical infrastructure. Given the widespread use of Linux in European data centers, cloud providers, and enterprise environments, the potential for operational disruption is notable.
Mitigation Recommendations
European organizations should promptly apply the official Linux kernel patches that address CVE-2022-48842, ensuring that the ice driver is updated to the fixed versions containing the ICE_FLAG_PLUG_AUX_DEV coordination mechanism. Until patches are applied, administrators should avoid rapid or automated cycling of network interfaces between LAG membership states, as this triggers the deadlock. Network configuration management tools and orchestration scripts should be reviewed and adjusted to prevent rapid enslaving and releasing of interfaces in bonding or LAG setups. Monitoring kernel logs for ice driver-related deadlock symptoms can help detect exploitation attempts or accidental triggers. Additionally, organizations should consider isolating critical network functions on hardware or virtualized environments not affected by this vulnerability if immediate patching is not feasible. Coordination with hardware vendors to confirm driver versions and compatibility is recommended to ensure comprehensive remediation.
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2024-07-16T11:38:08.910Z
- Cisa Enriched
- true
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682cd0fa1484d88663aebf7b
Added to database: 5/20/2025, 6:59:06 PM
Last enriched: 7/4/2025, 6:12:18 AM
Last updated: 8/15/2025, 10:07:37 PM
Views: 16
Related Threats
CVE-2025-33090: CWE-1333 Inefficient Regular Expression Complexity in IBM Concert Software
HighCVE-2025-27909: CWE-942 Permissive Cross-domain Policy with Untrusted Domains in IBM Concert Software
MediumCVE-2025-1759: CWE-244 Improper Clearing of Heap Memory Before Release ('Heap Inspection') in IBM Concert Software
MediumCVE-2025-4962: CWE-284 Improper Access Control in lunary-ai lunary-ai/lunary
HighCVE-2025-36120: CWE-863 Incorrect Authorization in IBM Storage Virtualize
HighActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.