Skip to content
OpenAdvisories
Critical · 9.8 CVE-2021-47162 EUVD-2021-33810GHSA-86fr-x2qv-cxp5

tipc: skb_linearize the head skb when reassembling msgs

Published Mar 25, 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-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:

tipc: skb_linearize the head skb when reassembling msgs

It's not a good idea to append the frag skb to a skb's frag_list if
the frag_list already has skbs from elsewhere, such as this skb was
created by pskb_copy() where the frag_list was cloned (all the skbs
in it were skb_get'ed) and shared by multiple skbs.

However, the new appended frag skb should have been only seen by the
current skb. Otherwise, it will cause use after free crashes as this
appended frag skb are seen by multiple skbs but it only got skb_get
called once.

The same thing happens with a skb updated by pskb_may_pull() with a
skb_cloned skb. Li Shuang has reported quite a few crashes caused
by this when doing testing over macvlan devices:

[] kernel BUG at net/core/skbuff.c:1970!
[] Call Trace:
[] skb_clone+0x4d/0xb0
[] macvlan_broadcast+0xd8/0x160 [macvlan]
[] macvlan_process_broadcast+0x148/0x150 [macvlan]
[] process_one_work+0x1a7/0x360
[] worker_thread+0x30/0x390

[] kernel BUG at mm/usercopy.c:102!
[] Call Trace:
[] __check_heap_object+0xd3/0x100
[] __check_object_size+0xff/0x16b
[] simple_copy_to_iter+0x1c/0x30
[] __skb_datagram_iter+0x7d/0x310
[] __skb_datagram_iter+0x2a5/0x310
[] skb_copy_datagram_iter+0x3b/0x90
[] tipc_recvmsg+0x14a/0x3a0 [tipc]
[] ____sys_recvmsg+0x91/0x150
[] ___sys_recvmsg+0x7b/0xc0

[] kernel BUG at mm/slub.c:305!
[] Call Trace:
[] <IRQ>
[] kmem_cache_free+0x3ff/0x400
[] __netif_receive_skb_core+0x12c/0xc40
[] ? kmem_cache_alloc+0x12e/0x270
[] netif_receive_skb_internal+0x3d/0xb0
[] ? get_rx_page_info+0x8e/0xa0 [be2net]
[] be_poll+0x6ef/0xd00 [be2net]
[] ? irq_exit+0x4f/0x100
[] net_rx_action+0x149/0x3b0

...

This patch is to fix it by linearizing the head skb if it has frag_list
set in tipc_buf_append(). Note that we choose to do this before calling
skb_unshare(), as __skb_linearize() will avoid skb_copy(). Also, we can
not just drop the frag_list either as the early time.

Affected products

VendorProductAffectedFixed
Linux Linux 4.1.14 – < 4.2, 4.2.7 – < 4.3, 4.3 4.2

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.14.6-1 —
Debian 13 linux 5.14.6-1 —
Debian 12 linux 5.14.6-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-80.90 —
Ubuntu 20.04 LTS linux-aws 5.4.0-1054.57 —
Ubuntu 20.04 LTS linux-azure 5.4.0-1055.57 —
Ubuntu 20.04 LTS linux-bluefield 5.4.0-1016.19 —
Ubuntu 20.04 LTS linux-gcp 5.4.0-1049.53 —
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 20.04 LTS linux-gkeop 5.4.0-1021.22 —
Ubuntu 20.04 LTS linux-kvm 5.4.0-1044.46 —
Ubuntu 20.04 LTS linux-oracle 5.4.0-1052.56 —
Ubuntu 20.04 LTS linux-raspi 5.4.0-1041.45 —
Ubuntu 18.04 LTS linux 4.15.0-151.157 —
Ubuntu 18.04 LTS linux-aws 4.15.0-1109.116 —
Ubuntu 18.04 LTS linux-aws-5.4 5.4.0-1054.57~18.04.1 —
Ubuntu 18.04 LTS linux-azure-4.15 4.15.0-1121.134 —
Ubuntu 18.04 LTS linux-azure-5.4 5.4.0-1055.57~18.04.1 —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 18.04 LTS linux-gcp-4.15 4.15.0-1106.120 —
Ubuntu 18.04 LTS linux-gcp-5.4 5.4.0-1049.53~18.04.1 —
Ubuntu 18.04 LTS linux-hwe-5.4 5.4.0-80.90~18.04.1 —
Ubuntu 18.04 LTS linux-kvm 4.15.0-1097.99 —
Ubuntu 18.04 LTS linux-oracle 4.15.0-1078.86 —
Ubuntu 18.04 LTS linux-oracle-5.4 5.4.0-1052.56~18.04.1 —
Ubuntu 18.04 LTS linux-raspi-5.4 5.4.0-1041.45~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-1031.36 —
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-2051.53 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-azure-fips 4.15.0-2033.37 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips 4.15.0-1066.75 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-gcp-fips 4.15.0-2016.18 —
Ubuntu Pro FIPS-updates 16.04 LTS linux-fips No fix yet —
Ubuntu Pro 16.04 LTS linux +2 No fix yet —
Ubuntu Pro 16.04 LTS linux-aws-hwe 4.15.0-1109.116~16.04.1 —
Ubuntu Pro 16.04 LTS linux-azure 4.15.0-1121.134~16.04.1 —
Ubuntu Pro 16.04 LTS linux-gcp 4.15.0-1106.120~16.04.1 —
Ubuntu Pro 16.04 LTS linux-hwe 4.15.0-151.157~16.04.1 —
Ubuntu Pro 16.04 LTS linux-oracle 4.15.0-1078.86~16.04.1 —
Ubuntu Pro 14.04 LTS linux-aws +1 No fix yet —
Ubuntu Pro 14.04 LTS linux-azure 4.15.0-1121.134~14.04.1 —
ReleasePackageFixed inAdvisory
SLES 12 SP5 kernel-azure +2 4.12.14-16.182.1 SUSE-SU-2024:1979-1, SUSE-SU-2024:1643-1
SLES 12 SP5 kernel-docs +4 4.12.14-122.216.1 SUSE-SU-2025:0035-1, SUSE-SU-2024:2184-1, SUSE-SU-2024:1870-1
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 12 SP5 kernel-azure +2 4.12.14-16.182.1 SUSE-SU-2024:1979-1, SUSE-SU-2024:1643-1
SLES for SAP 12 SP5 kernel-syms +2 4.12.14-122.216.1 SUSE-SU-2024:2184-1, SUSE-SU-2024:1870-1
SLE Real Time 12 SP5 kernel-rt +3 4.12.14-10.182.1 SUSE-SU-2024:1983-1, SUSE-SU-2024:1646-1
SLE Live Patching 12 SP5 kernel-default 4.12.14-122.216.1 SUSE-SU-2024:4367-1, SUSE-SU-2024:2184-1, SUSE-SU-2024:1870-1
SLE Live Patching 12 SP5 kgraft-patch-SLE12-SP5_Update_56 +2 1-8.3.1 SUSE-SU-2024:4367-1, SUSE-SU-2024:2184-1, SUSE-SU-2024:1870-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2 kernel-livepatch-4.14.238-182.421 1.0-0.amzn2 ALAS2-2021-1685
Amazon Linux 2 perf +8 4.14.238-182.421.amzn2 ALAS2-2021-1685

Advisories 11

References