i40e: fix race condition by adding filter's intermediate sync state
Fix a race condition in the i40e driver that leads to MAC/VLAN filters
becoming corrupted and leaking. Address the issue that occurs under
heavy load when multiple threads are concurrently modifying MAC/VLAN
filters by setting mac and port VLAN.
1. Thread T0 allocates a filter in i40e_add_filter() within
i40e_ndo_set_vf_port_vlan().
2. Thread T1 concurrently frees the filter in __i40e_del_filter() within
i40e_ndo_set_vf_mac().
3. Subsequently, i40e_service_task() calls i40e_sync_vsi_filters(), which
refers to the already freed filter memory, causing corruption.
Reproduction steps:
1. Spawn multiple VFs.
2. Apply a concurrent heavy load by running parallel operations to change
MAC addresses on the VFs and change port VLANs on the host.
3. Observe errors in dmesg:
"Error I40E_AQ_RC_ENOSPC adding RX filters on VF XX,
please set promiscuous on manually for VF XX".
Exact code for stable reproduction Intel can't open-source now.
The fix involves implementing a new intermediate filter state,
I40E_FILTER_NEW_SYNC, for the time when a filter is on a tmp_add_list.
These filters cannot be deleted from the hash list directly but
must be removed using the full process.
Metrics
Affected Vendors & Products
| Source | ID | Title | 
|---|---|---|
  Debian DLA | 
                DLA-4008-1 | linux-6.1 security update | 
  Debian DSA | 
                DSA-5818-1 | linux security update | 
  Ubuntu USN | 
                USN-7276-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7277-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7288-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7288-2 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7289-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7289-2 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7289-3 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7289-4 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7291-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7305-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7308-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7310-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7331-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7388-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7389-1 | Linux kernel (NVIDIA Tegra) vulnerabilities | 
  Ubuntu USN | 
                USN-7390-1 | Linux kernel (Xilinx ZynqMP) vulnerabilities | 
  Ubuntu USN | 
                USN-7449-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7449-2 | Linux kernel (HWE) vulnerabilities | 
  Ubuntu USN | 
                USN-7450-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7451-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7452-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7453-1 | Linux kernel (Real-time) vulnerabilities | 
  Ubuntu USN | 
                USN-7458-1 | Linux kernel (IBM) vulnerabilities | 
  Ubuntu USN | 
                USN-7468-1 | Linux kernel (Azure, N-Series) vulnerabilities | 
  Ubuntu USN | 
                USN-7523-1 | Linux kernel (Raspberry Pi Real-time) vulnerabilities | 
  Ubuntu USN | 
                USN-7524-1 | Linux kernel (Raspberry Pi) vulnerabilities | 
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
Mon, 03 Nov 2025 23:30:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| References | 
         | 
Wed, 01 Oct 2025 21:15:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| Metrics | 
        
        ssvc
         
  | 
Thu, 13 Feb 2025 00:45:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| First Time appeared | 
        
        Redhat
         Redhat enterprise Linux Redhat rhel Eus  | 
|
| CPEs | cpe:/a:redhat:enterprise_linux:8::nfv cpe:/a:redhat:enterprise_linux:9 cpe:/a:redhat:rhel_eus:9.4 cpe:/o:redhat:enterprise_linux:8 cpe:/o:redhat:enterprise_linux:9  | 
|
| Vendors & Products | 
        
        Redhat
         Redhat enterprise Linux Redhat rhel Eus  | 
Mon, 25 Nov 2024 14:00:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| First Time appeared | 
        
        Linux
         Linux linux Kernel  | 
|
| Weaknesses | CWE-362 | |
| CPEs | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:*  | 
|
| Vendors & Products | 
        
        Linux
         Linux linux Kernel  | 
|
| Metrics | 
        
        
        cvssV3_1
         
  | 
    
        
        
        cvssV3_1
         
  | 
Fri, 22 Nov 2024 14:00:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| References | 
         | |
| Metrics | 
        
        
        threat_severity
         
  | 
    
        
        cvssV3_1
         
 
  | 
Tue, 19 Nov 2024 18:00:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| Description | In the Linux kernel, the following vulnerability has been resolved: i40e: fix race condition by adding filter's intermediate sync state Fix a race condition in the i40e driver that leads to MAC/VLAN filters becoming corrupted and leaking. Address the issue that occurs under heavy load when multiple threads are concurrently modifying MAC/VLAN filters by setting mac and port VLAN. 1. Thread T0 allocates a filter in i40e_add_filter() within i40e_ndo_set_vf_port_vlan(). 2. Thread T1 concurrently frees the filter in __i40e_del_filter() within i40e_ndo_set_vf_mac(). 3. Subsequently, i40e_service_task() calls i40e_sync_vsi_filters(), which refers to the already freed filter memory, causing corruption. Reproduction steps: 1. Spawn multiple VFs. 2. Apply a concurrent heavy load by running parallel operations to change MAC addresses on the VFs and change port VLANs on the host. 3. Observe errors in dmesg: "Error I40E_AQ_RC_ENOSPC adding RX filters on VF XX, please set promiscuous on manually for VF XX". Exact code for stable reproduction Intel can't open-source now. The fix involves implementing a new intermediate filter state, I40E_FILTER_NEW_SYNC, for the time when a filter is on a tmp_add_list. These filters cannot be deleted from the hash list directly but must be removed using the full process. | |
| Title | i40e: fix race condition by adding filter's intermediate sync state | |
| References | 
         | 
        
  | 
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2025-11-03T22:29:06.753Z
Reserved: 2024-11-19T17:17:24.980Z
Link: CVE-2024-53088
Updated: 2025-10-01T15:31:54.788Z
Status : Modified
Published: 2024-11-19T18:15:27.950
Modified: 2025-11-03T23:17:19.113
Link: CVE-2024-53088
                        OpenCVE Enrichment
                    No data.
 Debian DLA
 Debian DSA
 Ubuntu USN