Skip to content
OpenAdvisories
High · 8.1 CVE-2021-47131 EUVD-2021-33779GHSA-xrvj-3vx6-wwh7

net/tls: Fix use-after-free after the TLS device goes down and up

Published Mar 15, 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-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.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-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-iot Package: linux-kvm Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 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 Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

net/tls: Fix use-after-free after the TLS device goes down and up

When a netdev with active TLS offload goes down, tls_device_down is
called to stop the offload and tear down the TLS context. However, the
socket stays alive, and it still points to the TLS context, which is now
deallocated. If a netdev goes up, while the connection is still active,
and the data flow resumes after a number of TCP retransmissions, it will
lead to a use-after-free of the TLS context.

This commit addresses this bug by keeping the context alive until its
normal destruction, and implements the necessary fallbacks, so that the
connection can resume in software (non-offloaded) kTLS mode.

On the TX side tls_sw_fallback is used to encrypt all packets. The RX
side already has all the necessary fallbacks, because receiving
non-decrypted packets is supported. The thing needed on the RX side is
to block resync requests, which are normally produced after receiving
non-decrypted packets.

The necessary synchronization is implemented for a graceful teardown:
first the fallbacks are deployed, then the driver resources are released
(it used to be possible to have a tls_dev_resync after tls_dev_del).

A new flag called TLS_RX_DEV_DEGRADED is added to indicate the fallback
mode. It's used to skip the RX resync logic completely, as it becomes
useless, and some objects may be released (for example, resync_async,
which is allocated and freed by the driver).

Affected products

VendorProductAffectedFixed
Linux Linux 4.18 5.10.43

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.10.46-1 —
Debian 13 linux 5.10.46-1 —
Debian 12 linux 5.10.46-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-190.210 USN-6924-1
Ubuntu 20.04 LTS linux-aws 5.4.0-1129.139 USN-6924-2
Ubuntu 20.04 LTS linux-azure 5.4.0-1134.141 USN-6924-1
Ubuntu 20.04 LTS linux-bluefield 5.4.0-1089.96 USN-6924-1
Ubuntu 20.04 LTS linux-gcp 5.4.0-1133.142 USN-6924-1
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 20.04 LTS linux-gkeop 5.4.0-1096.100 USN-6924-1
Ubuntu 20.04 LTS linux-ibm 5.4.0-1076.81 USN-6924-1
Ubuntu 20.04 LTS linux-iot 5.4.0-1041.42 USN-6924-1
Ubuntu 20.04 LTS linux-kvm 5.4.0-1117.124 USN-6924-1
Ubuntu 20.04 LTS linux-oracle 5.4.0-1129.138 USN-6953-1
Ubuntu 20.04 LTS linux-raspi 5.4.0-1113.125 USN-6924-1
Ubuntu 20.04 LTS linux-xilinx-zynqmp 5.4.0-1048.52 USN-6924-1
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro FIPS 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 20.04 LTS linux-aws-fips 5.4.0-1129.139+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-azure-fips 5.4.0-1134.141+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips 5.4.0-1103.113 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-gcp-fips 5.4.0-1133.142+fips1 —
Ubuntu Pro 18.04 LTS linux-aws-5.4 5.4.0-1129.139~18.04.1 USN-6924-2
Ubuntu Pro 18.04 LTS linux-azure-5.4 5.4.0-1134.141~18.04.1 USN-6924-1
Ubuntu Pro 18.04 LTS linux-gcp-5.4 5.4.0-1133.142~18.04.1 USN-6924-1
Ubuntu Pro 18.04 LTS linux-hwe-5.4 5.4.0-190.210~18.04.1 USN-6924-1
Ubuntu Pro 18.04 LTS linux-ibm-5.4 5.4.0-1076.81~18.04.1 USN-6924-1
Ubuntu Pro 18.04 LTS linux-oracle-5.4 5.4.0-1129.138~18.04.1 USN-6953-1
Ubuntu Pro 18.04 LTS linux-raspi-5.4 5.4.0-1114.126~18.04.1 USN-6979-1
ReleasePackageFixed inAdvisory
SLES 15 SP3 kernel-64kb +6 5.3.18-150300.59.161.1 SUSE-SU-2024:1642-1
SLES 15 SP3 kernel-default-base 5.3.18-150300.59.161.1.150300.18.94.1 SUSE-SU-2024:1642-1
SLES 15 SP3 kernel-docs 5.3.18-150300.59.161.2 SUSE-SU-2024:1642-1
SLES 15 SP2 kernel-default-base 5.3.18-150200.24.191.1.150200.9.97.1 SUSE-SU-2024:1650-1
SLES 15 SP2 kernel-docs +5 5.3.18-150200.24.191.1 SUSE-SU-2024:1650-1
SLES 12 SP5 kernel-azure +2 4.12.14-16.182.1 SUSE-SU-2024:1643-1
SLES 12 SP5 kernel-docs +4 4.12.14-122.219.1 SUSE-SU-2024:2184-1
Show 12 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP3 kernel-default-base 5.3.18-150300.59.161.1.150300.18.94.1 SUSE-SU-2024:1642-1
SLES for SAP 15 SP3 kernel-docs 5.3.18-150300.59.161.2 SUSE-SU-2024:1642-1
SLES for SAP 15 SP3 kernel-syms +4 5.3.18-150300.59.161.1 SUSE-SU-2024:1642-1
SLES for SAP 15 SP2 kernel-default-base 5.3.18-150200.24.191.1.150200.9.97.1 SUSE-SU-2024:1650-1
SLES for SAP 15 SP2 kernel-docs +5 5.3.18-150200.24.191.1 SUSE-SU-2024:1650-1
SLES for SAP 12 SP5 kernel-azure +2 4.12.14-16.182.1 SUSE-SU-2024:1643-1
SLES for SAP 12 SP5 kernel-syms +2 4.12.14-122.219.1 SUSE-SU-2024:2184-1
SLE Real Time 12 SP5 kernel-rt +3 4.12.14-10.188.1 SUSE-SU-2024:1983-1
SLE Micro 5.2 kernel-default 5.3.18-150300.59.161.1 SUSE-SU-2024:1642-1
SLE Micro 5.2 kernel-default-base 5.3.18-150300.59.161.1.150300.18.94.1 SUSE-SU-2024:1642-1
SLE Micro 5.2 kernel-rt +1 5.3.18-150300.169.1 SUSE-SU-2024:1645-1
SLE Micro 5.1 kernel-default 5.3.18-150300.59.161.1 SUSE-SU-2024:1642-1
SLE Micro 5.1 kernel-default-base 5.3.18-150300.59.161.1.150300.18.94.1 SUSE-SU-2024:1642-1
SLE Micro 5.1 kernel-rt +1 5.3.18-150300.169.1 SUSE-SU-2024:1645-1
SLE Live Patching 15 SP3 kernel-default 5.3.18-150300.59.161.1 SUSE-SU-2024:1642-1
SLE Live Patching 15 SP3 kernel-livepatch-SLE15-SP3_Update_44 1-150300.7.3.1 SUSE-SU-2024:1642-1
SLE Live Patching 15 SP2 kernel-default 5.3.18-150200.24.191.1 SUSE-SU-2024:1650-1
SLE Live Patching 15 SP2 kernel-livepatch-SLE15-SP2_Update_48 1-150200.5.3.1 SUSE-SU-2024:1650-1
SLE Live Patching 12 SP5 kernel-default 4.12.14-122.219.1 SUSE-SU-2024:2184-1
SLE Live Patching 12 SP5 kgraft-patch-SLE12-SP5_Update_57 1-8.3.1 SUSE-SU-2024:2184-1
SLE HPC 15 SP3 kernel-64kb +5 5.3.18-150300.59.161.1 SUSE-SU-2024:1642-1
SLE HPC 15 SP3 kernel-default-base 5.3.18-150300.59.161.1.150300.18.94.1 SUSE-SU-2024:1642-1
SLE HPC 15 SP3 kernel-docs 5.3.18-150300.59.161.2 SUSE-SU-2024:1642-1
SLE HPC 15 SP2 kernel-default-base 5.3.18-150200.24.191.1.150200.9.97.1 SUSE-SU-2024:1650-1
SLE HPC 15 SP2 kernel-docs +5 5.3.18-150200.24.191.1 SUSE-SU-2024:1650-1
SUSE Enterprise Storage 7.1 kernel-64kb +5 5.3.18-150300.59.161.1 SUSE-SU-2024:1642-1
SUSE Enterprise Storage 7.1 kernel-default-base 5.3.18-150300.59.161.1.150300.18.94.1 SUSE-SU-2024:1642-1
SUSE Enterprise Storage 7.1 kernel-docs 5.3.18-150300.59.161.2 SUSE-SU-2024:1642-1

Advisories 12

References