Skip to content
OpenAdvisories
High · 8.8 CVE-2022-48941 EUVD-2022-53820GHSA-2862-5xjv-8phr

ice: fix concurrent reset and removal of VFs

Published Aug 22, 2024 · Updated Aug 5, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-edge Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-nvidia-6.2 Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.5 Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

In the Linux kernel, the following vulnerability has been resolved:

ice: fix concurrent reset and removal of VFs

Commit c503e63200c6 ("ice: Stop processing VF messages during teardown")
introduced a driver state flag, ICE_VF_DEINIT_IN_PROGRESS, which is
intended to prevent some issues with concurrently handling messages from
VFs while tearing down the VFs.

This change was motivated by crashes caused while tearing down and
bringing up VFs in rapid succession.

It turns out that the fix actually introduces issues with the VF driver
caused because the PF no longer responds to any messages sent by the VF
during its .remove routine. This results in the VF potentially removing
its DMA memory before the PF has shut down the device queues.

Additionally, the fix doesn't actually resolve concurrency issues within
the ice driver. It is possible for a VF to initiate a reset just prior
to the ice driver removing VFs. This can result in the remove task
concurrently operating while the VF is being reset. This results in
similar memory corruption and panics purportedly fixed by that commit.

Fix this concurrency at its root by protecting both the reset and
removal flows using the existing VF cfg_lock. This ensures that we
cannot remove the VF while any outstanding critical tasks such as a
virtchnl message or a reset are occurring.

This locking change also fixes the root cause originally fixed by commit
c503e63200c6 ("ice: Stop processing VF messages during teardown"), so we
can simply revert it.

Note that I kept these two changes together because simply reverting the
original commit alone would leave the driver vulnerable to worse race
conditions.

Affected products

VendorProductAffectedFixed
Linux Linux 5.13.12 – < 5.14, 5.14 5.14

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 5.16.12-1 —
Debian 13 linux 5.16.12-1 —
Debian 12 linux 5.16.12-1 —
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS linux-raspi-realtime No fix yet —
Ubuntu 22.04 LTS linux-riscv +31 No fix yet —
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1008.11~20.04.1 —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP5 kernel-64kb +4 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
SLES 15 SP5 kernel-azure +2 5.14.21-150500.33.66.1 SUSE-SU-2024:3190-1
SLES 15 SP5 kernel-default-base 5.14.21-150500.55.80.2.150500.6.35.6 SUSE-SU-2024:3483-1
SLES 15 SP5 kernel-syms +1 5.14.21-150500.55.80.1 SUSE-SU-2024:3483-1
SLES 15 SP4 kernel-64kb +4 5.14.21-150400.24.133.2 SUSE-SU-2024:3408-1
SLES 15 SP4 kernel-default-base 5.14.21-150400.24.133.2.150400.24.64.5 SUSE-SU-2024:3408-1
SLES 15 SP4 kernel-docs +1 5.14.21-150400.24.133.1 SUSE-SU-2024:3408-1
Show 10 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP4 kernel-default-base 5.14.21-150400.24.133.2.150400.24.64.5 SUSE-SU-2024:3408-1
SLES for SAP 15 SP4 kernel-docs +1 5.14.21-150400.24.133.1 SUSE-SU-2024:3408-1
SLES for SAP 15 SP4 kernel-source +2 5.14.21-150400.24.133.2 SUSE-SU-2024:3408-1
SLE Micro 5.5 kernel-default 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
SLE Micro 5.5 kernel-default-base 5.14.21-150500.55.80.2.150500.6.35.6 SUSE-SU-2024:3483-1
SLE Micro 5.5 kernel-rt +1 5.14.21-150500.13.67.3 SUSE-SU-2024:3209-1
SLE Micro 5.4 kernel-default 5.14.21-150400.24.133.2 SUSE-SU-2024:3408-1
SLE Micro 5.4 kernel-default-base 5.14.21-150400.24.133.2.150400.24.64.5 SUSE-SU-2024:3408-1
SLE Micro 5.4 kernel-rt +1 5.14.21-150400.15.91.3 SUSE-SU-2024:3227-1
SLE Micro 5.3 kernel-default 5.14.21-150400.24.133.2 SUSE-SU-2024:3408-1
SLE Micro 5.3 kernel-default-base 5.14.21-150400.24.133.2.150400.24.64.5 SUSE-SU-2024:3408-1
SLE Micro 5.3 kernel-rt +1 5.14.21-150400.15.91.3 SUSE-SU-2024:3227-1
SLE Live Patching 15 SP5 kernel-default 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_19 +1 1-150500.11.3.2 SUSE-SU-2024:3483-1, SUSE-SU-2024:3209-1
SLE Live Patching 15 SP4 kernel-default 5.14.21-150400.24.133.2 SUSE-SU-2024:3408-1
SLE Live Patching 15 SP4 kernel-livepatch-SLE15-SP4_Update_31 1-150400.9.3.2 SUSE-SU-2024:3408-1
SLE HPC 15 SP4 kernel-64kb +3 5.14.21-150400.24.133.2 SUSE-SU-2024:3408-1
SLE HPC 15 SP4 kernel-default-base 5.14.21-150400.24.133.2.150400.24.64.5 SUSE-SU-2024:3408-1
SLE HPC 15 SP4 kernel-docs +1 5.14.21-150400.24.133.1 SUSE-SU-2024:3408-1
SUSE Real Time Module 15 SP5 kernel-rt +2 5.14.21-150500.13.67.3 SUSE-SU-2024:3209-1
SUSE Real Time Module 15 SP5 kernel-syms-rt 5.14.21-150500.13.67.1 SUSE-SU-2024:3209-1
SUSE Manager Server 4.3 kernel-default-base 5.14.21-150400.24.133.2.150400.24.64.5 SUSE-SU-2024:3408-1
SUSE Manager Server 4.3 kernel-source +2 5.14.21-150400.24.133.2 SUSE-SU-2024:3408-1
SUSE Manager Server 4.3 kernel-syms 5.14.21-150400.24.133.1 SUSE-SU-2024:3408-1
SUSE Manager Proxy 4.3 kernel-default-base 5.14.21-150400.24.133.2.150400.24.64.5 SUSE-SU-2024:3408-1
SUSE Manager Proxy 4.3 kernel-source +1 5.14.21-150400.24.133.2 SUSE-SU-2024:3408-1
SUSE Manager Proxy 4.3 kernel-syms 5.14.21-150400.24.133.1 SUSE-SU-2024:3408-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.5 dtb-aarch64 +3 5.14.21-150500.55.80.1 SUSE-SU-2024:3483-1
openSUSE Leap 15.5 kernel-64kb +6 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
openSUSE Leap 15.5 kernel-azure +2 5.14.21-150500.33.66.1 SUSE-SU-2024:3190-1
openSUSE Leap 15.5 kernel-default-base 5.14.21-150500.55.80.2.150500.6.35.6 SUSE-SU-2024:3483-1
openSUSE Leap 15.5 kernel-rt +2 5.14.21-150500.13.67.3 SUSE-SU-2024:3209-1
openSUSE Leap 15.5 kernel-syms-rt 5.14.21-150500.13.67.1 SUSE-SU-2024:3209-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.5 kernel-default 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
openSUSE Leap Micro 5.5 kernel-default-base 5.14.21-150500.55.80.2.150500.6.35.6 SUSE-SU-2024:3483-1
openSUSE Leap Micro 5.5 kernel-rt 5.14.21-150500.13.67.3 SUSE-SU-2024:3209-1

Advisories 6

References