Skip to content
OpenAdvisories
Critical · 9.8 CVE-2021-47587 EUVD-2021-34589GHSA-gp83-h9gh-vrv6

net: systemport: Add global locking for descriptor lifecycle

Published Jun 19, 2024 · Updated Aug 5, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws 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.4 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-fips Package: linux-aws-hwe Package: linux-azure Package: linux-azure-4.15 Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.4 Package: linux-azure-5.8 Package: linux-azure-6.2 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-fips Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-4.15 Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.4 Package: linux-gcp-5.8 Package: linux-gcp-6.2 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop 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.4 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.4 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-kvm Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lts-xenial 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-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.3 Package: linux-oracle-5.4 Package: linux-oracle-5.8 Package: linux-raspi Package: linux-raspi-5.4 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-starfive-5.19 Package: linux-starfive-6.2 Package: linux-vmware Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

net: systemport: Add global locking for descriptor lifecycle

The descriptor list is a shared resource across all of the transmit queues, and
the locking mechanism used today only protects concurrency across a given
transmit queue between the transmit and reclaiming. This creates an opportunity
for the SYSTEMPORT hardware to work on corrupted descriptors if we have
multiple producers at once which is the case when using multiple transmit
queues.

This was particularly noticeable when using multiple flows/transmit queues and
it showed up in interesting ways in that UDP packets would get a correct UDP
header checksum being calculated over an incorrect packet length. Similarly TCP
packets would get an equally correct checksum computed by the hardware over an
incorrect packet length.

The SYSTEMPORT hardware maintains an internal descriptor list that it re-arranges
when the driver produces a new descriptor anytime it writes to the
WRITE_PORT_{HI,LO} registers, there is however some delay in the hardware to
re-organize its descriptors and it is possible that concurrent TX queues
eventually break this internal allocation scheme to the point where the
length/status part of the descriptor gets used for an incorrect data buffer.

The fix is to impose a global serialization for all TX queues in the short
section where we are writing to the WRITE_PORT_{HI,LO} registers which solves
the corruption even with multiple concurrent TX queues being used.

Affected products

VendorProductAffectedFixed
Linux Linux 3.16 4.4.296

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.15.15-1 —
Debian 13 linux 5.15.15-1 —
Debian 12 linux 5.15.15-1 —
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS linux-raspi-realtime No fix yet —
Ubuntu 22.04 LTS linux-riscv +22 No fix yet —
Ubuntu 20.04 LTS linux 5.4.0-105.119 —
Ubuntu 20.04 LTS linux-aws 5.4.0-1069.73 —
Ubuntu 20.04 LTS linux-azure 5.4.0-1073.76 —
Ubuntu 20.04 LTS linux-bluefield 5.4.0-1032.35 —
Ubuntu 20.04 LTS linux-gcp 5.4.0-1068.72 —
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 20.04 LTS linux-gkeop 5.4.0-1037.38 —
Ubuntu 20.04 LTS linux-ibm 5.4.0-1018.20 —
Ubuntu 20.04 LTS linux-kvm 5.4.0-1059.62 —
Ubuntu 20.04 LTS linux-oracle 5.4.0-1067.72 —
Ubuntu 20.04 LTS linux-raspi 5.4.0-1056.63 —
Ubuntu 18.04 LTS linux 4.15.0-169.177 —
Ubuntu 18.04 LTS linux-aws 4.15.0-1121.129 —
Ubuntu 18.04 LTS linux-aws-5.4 5.4.0-1069.73~18.04.1 —
Ubuntu 18.04 LTS linux-azure-4.15 4.15.0-1131.144 —
Ubuntu 18.04 LTS linux-azure-5.4 5.4.0-1073.76~18.04.1 —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 18.04 LTS linux-gcp-4.15 4.15.0-1116.130 —
Ubuntu 18.04 LTS linux-gcp-5.4 5.4.0-1068.72~18.04.1 —
Ubuntu 18.04 LTS linux-hwe-5.4 5.4.0-105.119~18.04.1 —
Ubuntu 18.04 LTS linux-ibm-5.4 5.4.0-1018.20~18.04.1 —
Ubuntu 18.04 LTS linux-kvm 4.15.0-1107.109 —
Ubuntu 18.04 LTS linux-oracle 4.15.0-1087.95 —
Ubuntu 18.04 LTS linux-oracle-5.4 5.4.0-1067.72~18.04.1 —
Ubuntu 18.04 LTS linux-raspi-5.4 5.4.0-1056.63~18.04.1 —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Show 8 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro FIPS 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-updates 20.04 LTS linux-aws-fips 5.4.0-1069.73+fips2 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-azure-fips 5.4.0-1073.76+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips 5.4.0-1046.52 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-gcp-fips 5.4.0-1067.71~20.04.1 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-aws-fips 4.15.0-2061.63 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-azure-fips 4.15.0-2043.47 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips 4.15.0-1078.87 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-gcp-fips 4.15.0-2026.28 —
Ubuntu Pro FIPS-updates 16.04 LTS linux-fips 4.4.0-1113.120 USN-7506-3
Ubuntu Pro 16.04 LTS linux 4.4.0-268.302 USN-7506-1
Ubuntu Pro 16.04 LTS linux-aws 4.4.0-1181.196 USN-7506-1
Ubuntu Pro 16.04 LTS linux-aws-hwe 4.15.0-1120.128~16.04.1 —
Ubuntu Pro 16.04 LTS linux-azure 4.15.0-1131.144~16.04.1 —
Ubuntu Pro 16.04 LTS linux-gcp 4.15.0-1116.130~16.04.1 —
Ubuntu Pro 16.04 LTS linux-hwe 4.15.0-169.177~16.04.1 —
Ubuntu Pro 16.04 LTS linux-kvm 4.4.0-1144.155 USN-7506-1
Ubuntu Pro 16.04 LTS linux-oracle 4.15.0-1087.95~16.04.1 —
Ubuntu Pro 14.04 LTS linux-aws 4.4.0-1143.149 USN-7506-2
Ubuntu Pro 14.04 LTS linux-azure 4.15.0-1131.144~14.04.1 —
Ubuntu Pro 14.04 LTS linux-lts-xenial 4.4.0-268.302~14.04.1 USN-7506-4
ReleasePackageFixed inAdvisory
SLES 15 SP5 kernel-64kb +5 5.14.21-150500.55.73.1 SUSE-SU-2024:2939-1
SLES 15 SP5 kernel-azure +2 5.14.21-150500.33.60.1 SUSE-SU-2024:2372-1
SLES 15 SP5 kernel-default-base 5.14.21-150500.55.73.1.150500.6.33.8 SUSE-SU-2024:2939-1
SLES 15 SP5 kernel-docs 5.14.21-150500.55.73.2 SUSE-SU-2024:2939-1
SLES 15 SP4 kernel-64kb +6 5.14.21-150400.24.128.1 SUSE-SU-2024:2929-1
SLES 15 SP4 kernel-default-base 5.14.21-150400.24.128.1.150400.24.62.1 SUSE-SU-2024:2929-1
SLES 12 SP5 kernel-azure +2 4.12.14-16.191.1 SUSE-SU-2024:2360-1
SLES 12 SP5 kernel-docs +4 4.12.14-122.222.1 SUSE-SU-2024:2561-1
Show 13 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP4 kernel-default-base 5.14.21-150400.24.128.1.150400.24.62.1 SUSE-SU-2024:2929-1
SLES for SAP 15 SP4 kernel-docs +4 5.14.21-150400.24.128.1 SUSE-SU-2024:2929-1
SLES for SAP 12 SP5 kernel-azure +2 4.12.14-16.191.1 SUSE-SU-2024:2360-1
SLES for SAP 12 SP5 kernel-syms +2 4.12.14-122.222.1 SUSE-SU-2024:2561-1
SLE Real Time 12 SP5 kernel-rt +3 4.12.14-10.191.1 SUSE-SU-2024:2381-1
SLE Micro 5.5 kernel-default 5.14.21-150500.55.73.1 SUSE-SU-2024:2939-1
SLE Micro 5.5 kernel-default-base 5.14.21-150500.55.73.1.150500.6.33.8 SUSE-SU-2024:2939-1
SLE Micro 5.5 kernel-rt +1 5.14.21-150500.13.61.1 SUSE-SU-2024:2394-1
SLE Micro 5.4 kernel-default 5.14.21-150400.24.128.1 SUSE-SU-2024:2929-1
SLE Micro 5.4 kernel-default-base 5.14.21-150400.24.128.1.150400.24.62.1 SUSE-SU-2024:2929-1
SLE Micro 5.4 kernel-rt +1 5.14.21-150400.15.88.1 SUSE-SU-2024:2902-1
SLE Micro 5.3 kernel-default 5.14.21-150400.24.128.1 SUSE-SU-2024:2929-1
SLE Micro 5.3 kernel-default-base 5.14.21-150400.24.128.1.150400.24.62.1 SUSE-SU-2024:2929-1
SLE Micro 5.3 kernel-rt +1 5.14.21-150400.15.88.1 SUSE-SU-2024:2902-1
SLE Live Patching 15 SP5 kernel-default 5.14.21-150500.55.73.1 SUSE-SU-2024:2939-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_17 +1 1-150500.11.3.1 SUSE-SU-2024:2939-1, SUSE-SU-2024:2394-1
SLE Live Patching 15 SP4 kernel-default 5.14.21-150400.24.128.1 SUSE-SU-2024:2929-1
SLE Live Patching 15 SP4 kernel-livepatch-SLE15-SP4_Update_29 1-150400.9.3.1 SUSE-SU-2024:2929-1
SLE Live Patching 12 SP5 kernel-default 4.12.14-122.222.1 SUSE-SU-2024:2561-1
SLE Live Patching 12 SP5 kgraft-patch-SLE12-SP5_Update_58 1-8.3.1 SUSE-SU-2024:2561-1
SLE HPC 15 SP4 kernel-64kb +5 5.14.21-150400.24.128.1 SUSE-SU-2024:2929-1
SLE HPC 15 SP4 kernel-default-base 5.14.21-150400.24.128.1.150400.24.62.1 SUSE-SU-2024:2929-1
SUSE Real Time Module 15 SP5 kernel-rt +3 5.14.21-150500.13.61.1 SUSE-SU-2024:2394-1
SUSE Manager Server 4.3 kernel-default-base 5.14.21-150400.24.128.1.150400.24.62.1 SUSE-SU-2024:2929-1
SUSE Manager Server 4.3 kernel-syms +3 5.14.21-150400.24.128.1 SUSE-SU-2024:2929-1
SUSE Manager Proxy 4.3 kernel-default-base 5.14.21-150400.24.128.1.150400.24.62.1 SUSE-SU-2024:2929-1
SUSE Manager Proxy 4.3 kernel-syms +2 5.14.21-150400.24.128.1 SUSE-SU-2024:2929-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.5 dtb-aarch64 +9 5.14.21-150500.55.73.1 SUSE-SU-2024:2939-1
openSUSE Leap 15.5 kernel-azure +2 5.14.21-150500.33.60.1 SUSE-SU-2024:2372-1
openSUSE Leap 15.5 kernel-default-base 5.14.21-150500.55.73.1.150500.6.33.8 SUSE-SU-2024:2939-1
openSUSE Leap 15.5 kernel-docs 5.14.21-150500.55.73.2 SUSE-SU-2024:2939-1
openSUSE Leap 15.5 kernel-rt +3 5.14.21-150500.13.61.1 SUSE-SU-2024:2394-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.5 kernel-default 5.14.21-150500.55.73.1 SUSE-SU-2024:2939-1
openSUSE Leap Micro 5.5 kernel-default-base 5.14.21-150500.55.73.1.150500.6.33.8 SUSE-SU-2024:2939-1

Advisories 13

References