Skip to content
OpenAdvisories
High · 7.5 CVE-2024-41048 EUVD-2024-39078GHSA-r2cq-rw93-xwch

skmsg: Skip zero length skb in sk_msg_recvmsg

Published Jul 29, 2024 · Updated Oct 30, 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.15 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-6.5 Package: linux-aws-6.8 Package: linux-aws-fips Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 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-6.5 Package: linux-azure-6.8 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.15 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-6.5 Package: linux-gcp-6.8 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.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.4 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-ibm-5.4 Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-iot Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-nvidia Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-nvidia-tegra-5.15 Package: linux-nvidia-tegra-igx 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-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.4 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-5.4 Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

skmsg: Skip zero length skb in sk_msg_recvmsg

When running BPF selftests (./test_progs -t sockmap_basic) on a Loongarch
platform, the following kernel panic occurs:

[...]
Oops[#1]:
CPU: 22 PID: 2824 Comm: test_progs Tainted: G OE 6.10.0-rc2+ #18
Hardware name: LOONGSON Dabieshan/Loongson-TC542F0, BIOS Loongson-UDK2018
... ...
ra: 90000000048bf6c0 sk_msg_recvmsg+0x120/0x560
ERA: 9000000004162774 copy_page_to_iter+0x74/0x1c0
CRMD: 000000b0 (PLV0 -IE -DA +PG DACF=CC DACM=CC -WE)
PRMD: 0000000c (PPLV0 +PIE +PWE)
EUEN: 00000007 (+FPE +SXE +ASXE -BTE)
ECFG: 00071c1d (LIE=0,2-4,10-12 VS=7)
ESTAT: 00010000 [PIL] (IS= ECode=1 EsubCode=0)
BADV: 0000000000000040
PRID: 0014c011 (Loongson-64bit, Loongson-3C5000)
Modules linked in: bpf_testmod(OE) xt_CHECKSUM xt_MASQUERADE xt_conntrack
Process test_progs (pid: 2824, threadinfo=0000000000863a31, task=...)
Stack : ...
Call Trace:
[<9000000004162774>] copy_page_to_iter+0x74/0x1c0
[<90000000048bf6c0>] sk_msg_recvmsg+0x120/0x560
[<90000000049f2b90>] tcp_bpf_recvmsg_parser+0x170/0x4e0
[<90000000049aae34>] inet_recvmsg+0x54/0x100
[<900000000481ad5c>] sock_recvmsg+0x7c/0xe0
[<900000000481e1a8>] __sys_recvfrom+0x108/0x1c0
[<900000000481e27c>] sys_recvfrom+0x1c/0x40
[<9000000004c076ec>] do_syscall+0x8c/0xc0
[<9000000003731da4>] handle_syscall+0xc4/0x160
Code: ...
---[ end trace 0000000000000000 ]---
Kernel panic - not syncing: Fatal exception
Kernel relocated by 0x3510000
.text @ 0x9000000003710000
.data @ 0x9000000004d70000
.bss @ 0x9000000006469400
---[ end Kernel panic - not syncing: Fatal exception ]---
[...]

This crash happens every time when running sockmap_skb_verdict_shutdown
subtest in sockmap_basic.

This crash is because a NULL pointer is passed to page_address() in the
sk_msg_recvmsg(). Due to the different implementations depending on the
architecture, page_address(NULL) will trigger a panic on Loongarch
platform but not on x86 platform. So this bug was hidden on x86 platform
for a while, but now it is exposed on Loongarch platform. The root cause
is that a zero length skb (skb->len == 0) was put on the queue.

This zero length skb is a TCP FIN packet, which was sent by shutdown(),
invoked in test_sockmap_skb_verdict_shutdown():

shutdown(p1, SHUT_WR);

In this case, in sk_psock_skb_ingress_enqueue(), num_sge is zero, and no
page is put to this sge (see sg_set_page in sg_set_page), but this empty
sge is queued into ingress_msg list.

And in sk_msg_recvmsg(), this empty sge is used, and a NULL page is got by
sg_page(sge). Pass this NULL page to copy_page_to_iter(), which passes it
to kmap_local_page() and to page_address(), then kernel panics.

To solve this, we should skip this zero length skb. So in sk_msg_recvmsg(),
if copy is zero, that means it's a zero length skb, skip invoking
copy_page_to_iter(). We are using the EFAULT return triggered by
copy_page_to_iter to check for is_fin in tcp_bpf.c.

Affected products

VendorProductAffectedFixed
Linux Linux 4.20 5.10.273

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 6.9.10-1 —
Debian 13 linux 6.9.10-1 —
Debian 12 linux 6.1.106-1 —
Debian 11 linux-6.1 6.1.119-1~deb11u1 DLA-4008-1
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1052.54 —
Ubuntu 24.04 LTS linux 6.8.0-48.48 USN-7089-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1018.20 USN-7089-3
Ubuntu 24.04 LTS linux-azure 6.8.0-1017.20 USN-7089-2
Ubuntu 24.04 LTS linux-gcp +1 6.8.0-1017.19 USN-7095-1, USN-7089-2
Ubuntu 24.04 LTS linux-gke 6.8.0-1013.17 USN-7089-6
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1002.4 USN-7156-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1015.15 USN-7089-2
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-48.48.3 USN-7089-7
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1017.19.1 USN-7095-1
Ubuntu 24.04 LTS linux-oem-6.8 6.8.0-1016.16 USN-7089-4
Ubuntu 24.04 LTS linux-oracle 6.8.0-1015.16 USN-7089-3
Ubuntu 24.04 LTS linux-raspi 6.8.0-1014.16 USN-7089-5
Ubuntu 24.04 LTS linux-riscv 6.8.0-48.48.1 —
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1009.10 —
Ubuntu 22.04 LTS linux +1 5.15.0-121.131 USN-7007-3, USN-7007-1
Ubuntu 22.04 LTS linux-aws 5.15.0-1069.75 USN-7007-1
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1018.19~22.04.1 USN-7089-3
Ubuntu 22.04 LTS linux-azure 5.15.0-1072.81 USN-7009-1
Ubuntu 22.04 LTS linux-azure-6.8 6.8.0-1017.20~22.04.1 USN-7090-1
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1072.81.1 USN-7009-1
Ubuntu 22.04 LTS linux-gcp 5.15.0-1068.76 USN-7007-1
Ubuntu 22.04 LTS linux-gcp-6.8 +1 6.8.0-1017.19~22.04.1 USN-7095-1, USN-7089-1
Ubuntu 22.04 LTS linux-gke 5.15.0-1066.72 USN-7007-1
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1052.59 USN-7007-1
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-48.48~22.04.1 USN-7089-1
Ubuntu 22.04 LTS linux-ibm +1 5.15.0-1062.65 USN-7007-1
Ubuntu 22.04 LTS linux-ibm-6.8 +1 6.8.0-1015.15~22.04.1 USN-7089-3
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1064.70 USN-7007-1
Ubuntu 22.04 LTS linux-kvm 5.15.0-1066.71 USN-7007-1
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-48.48.3~22.04.1 USN-7089-7
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1064.65 USN-7007-1
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1028.28 —
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1016.16 —
Ubuntu 22.04 LTS linux-oracle 5.15.0-1067.73 USN-7007-1
Ubuntu 22.04 LTS linux-riscv +31 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-48.48.1~22.04.2 —
Ubuntu 22.04 LTS linux-xilinx-zynqmp 5.15.0-1035.39 USN-7019-1
Ubuntu 20.04 LTS linux-aws-5.15 5.15.0-1069.75~20.04.1 USN-7007-1
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1072.81~20.04.1 USN-7009-1
Ubuntu 20.04 LTS linux-azure-fde-5.15 5.15.0-1072.81~20.04.1.1 USN-7009-2
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1068.76~20.04.1 USN-7007-1
Ubuntu 20.04 LTS linux-gke +27 No fix yet —
Ubuntu 20.04 LTS linux-gkeop-5.15 5.15.0-1052.59~20.04.1 USN-7007-1
Ubuntu 20.04 LTS linux-hwe-5.15 +1 5.15.0-121.131~20.04.1 USN-7007-3, USN-7007-1
Ubuntu 20.04 LTS linux-ibm-5.15 5.15.0-1062.65~20.04.1 USN-7007-2
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1064.70~20.04.1 USN-7007-1
Ubuntu 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1030.30~20.04.1 —
Ubuntu 20.04 LTS linux-oracle-5.15 5.15.0-1067.73~20.04.1 USN-7007-2
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1065.69~20.04.1 —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Show 10 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2013.14 —
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1011.11 —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1063.65 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1070.78 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1011.11~22.04.1 —
Ubuntu Pro FIPS 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-78.78+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1069.75+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1072.81+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-121.131+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1068.76+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 20.04 LTS linux +10 No fix yet —
Ubuntu Pro 18.04 LTS linux-aws-5.4 +6 No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP6 kernel-64kb +6 6.4.0-150600.23.22.1 SUSE-SU-2024:3383-1
SLES 15 SP6 kernel-azure +2 6.4.0-150600.8.11.1 SUSE-SU-2024:3194-1
SLES 15 SP6 kernel-default-base 6.4.0-150600.23.22.1.150600.12.8.3 SUSE-SU-2024:3383-1
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.63.1 SUSE-SU-2024:2947-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 12 SP5 kernel-azure +2 4.12.14-16.194.1 SUSE-SU-2024:2901-1
SLES 12 SP5 kernel-docs 4.12.14-122.225.2 SUSE-SU-2024:2940-1
SLES 12 SP5 kernel-syms +3 4.12.14-122.225.1 SUSE-SU-2024:2940-1
Show 9 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 12 SP5 kernel-azure +2 4.12.14-16.194.1 SUSE-SU-2024:2901-1
SLES for SAP 12 SP5 kernel-syms +2 4.12.14-122.225.1 SUSE-SU-2024:2940-1
SLE Real Time 12 SP5 kernel-rt +3 4.12.14-10.197.1 SUSE-SU-2024:2892-1
SLE Micro 6.0 kernel-default-base 6.4.0-17.1.1.51 SUSE-SU-2025:20044-1
SLE Micro 6.0 kernel-livepatch-MICRO-6-0_Update_2 +1 1-1.1 SUSE-SU-2025:20047-1, SUSE-SU-2025:20044-1
SLE Micro 6.0 kernel-rt +1 6.4.0-10.1 SUSE-SU-2025:20047-1
SLE Micro 6.0 kernel-source +2 6.4.0-19.1 SUSE-SU-2025:20044-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.64.1 SUSE-SU-2024:2894-1
SLE Live Patching 15 SP6 kernel-default 6.4.0-150600.23.22.1 SUSE-SU-2024:3383-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_2 1-150600.1.3.2 SUSE-SU-2024:3195-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_4 1-150600.13.3.3 SUSE-SU-2024:3383-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:2894-1
SLE Live Patching 12 SP5 kernel-default 4.12.14-122.225.1 SUSE-SU-2024:2940-1
SLE Live Patching 12 SP5 kgraft-patch-SLE12-SP5_Update_59 1-8.3.1 SUSE-SU-2024:2940-1
SUSE Real Time Module 15 SP6 kernel-rt +2 6.4.0-150600.10.8.3 SUSE-SU-2024:3195-1
SUSE Real Time Module 15 SP6 kernel-syms-rt 6.4.0-150600.10.8.1 SUSE-SU-2024:3195-1
SUSE Real Time Module 15 SP5 kernel-rt +3 5.14.21-150500.13.64.1 SUSE-SU-2024:2894-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.6 dtb-aarch64 +10 6.4.0-150600.23.22.1 SUSE-SU-2024:3383-1
openSUSE Leap 15.6 kernel-azure +2 6.4.0-150600.8.11.1 SUSE-SU-2024:3194-1
openSUSE Leap 15.6 kernel-default-base 6.4.0-150600.23.22.1.150600.12.8.3 SUSE-SU-2024:3383-1
openSUSE Leap 15.6 kernel-rt +2 6.4.0-150600.10.8.3 SUSE-SU-2024:3195-1
openSUSE Leap 15.6 kernel-syms-rt 6.4.0-150600.10.8.1 SUSE-SU-2024:3195-1
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.63.1 SUSE-SU-2024:2947-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.64.1 SUSE-SU-2024:2894-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
openSUSE Leap Micro 5.5 kernel-rt 5.14.21-150500.13.64.1 SUSE-SU-2024:2894-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 kernel-livepatch-6.1.102-108.177 1.0-0.amzn2023 ALAS2023-2024-679
Amazon Linux 2023 perf +14 6.1.102-108.177.amzn2023 ALAS2023-2024-679

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 8 bpftool +13 5.15.0-210.163.7.el9uek ELSA-2024-12618

Advisories 31

References