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
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| 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.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 5.14.6-1 | — |
| Debian 13 | linux | 5.14.6-1 | — |
| Debian 12 | linux | 5.14.6-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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 | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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
- WID-SEC-2024-0699 Linux-Kernel: Mehrere Schwachstellen ermöglichen Denial of Service und unspezifische Angriffe BSI CERT-Bund (WID) · Apr 1, 2026
- SUSE-SU-2024:1979-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1983-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1870-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1646-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:1643-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2024:2184-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- ALAS2-2021-1685 Important: kernel security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · Oct 2, 2025
- WID-SEC-2025-0225 Dell PowerProtect Data Domain: Mehrere Schwachstellen BSI CERT-Bund (WID) · Oct 1, 2025
- SUSE-SU-2024:4367-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · May 2, 2025
- SUSE-SU-2025:0035-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · May 2, 2025
References
- https://git.kernel.org/stable/c/b2c8d28c34b3070407cb1741f9ba3f15d0284b8b
- https://git.kernel.org/stable/c/5489f30bb78ff0dafb4229a69632afc2ba20765c
- https://git.kernel.org/stable/c/436d650d374329a591c30339a91fa5078052ed1e
- https://git.kernel.org/stable/c/4b1761898861117c97066aea6c58f68a7787f0bf
- https://git.kernel.org/stable/c/64d17ec9f1ded042c4b188d15734f33486ed9966
- https://git.kernel.org/stable/c/6da24cfc83ba4f97ea44fc7ae9999a006101755c
- https://git.kernel.org/stable/c/ace300eecbccaa698e2b472843c74a5f33f7dce8
- https://git.kernel.org/stable/c/b7df21cf1b79ab7026f545e7bf837bd5750ac026