In the Linux kernel, the following vulnerability has been resolved:
llc: verify mac len before reading mac header
LLC reads the mac header with eth_hdr without verifying that the skb has an Ethernet header.
Syzbot was able to enter llc_rcv on a tun device. Tun can insert packets without mac len and with user configurable skb->protocol (passing a tun_pi header when not configuring IFF_NO_PI).
BUG: KMSAN: uninit-value in llc_station_ac_send_test_r net/llc/llc_station.c:81 [inline] BUG: KMSAN: uninit-value in llc_station_rcv+0x6fb/0x1290 net/llc/llc_station.c:111 llc_station_ac_send_test_r net/llc/llc_station.c:81 [inline] llc_station_rcv+0x6fb/0x1290 net/llc/llc_station.c:111 llc_rcv+0xc5d/0x14a0 net/llc/llc_input.c:218 __netif_receive_skb_one_core net/core/dev.c:5523 [inline] __netif_receive_skb+0x1a6/0x5a0 net/core/dev.c:5637 netif_receive_skb_internal net/core/dev.c:5723 [inline] netif_receive_skb+0x58/0x660 net/core/dev.c:5782 tun_rx_batched+0x3ee/0x980 drivers/net/tun.c:1555 tun_get_user+0x54c5/0x69c0 drivers/net/tun.c:2002
Add a mac_len test before all three eth_hdr(skb) calls under net/llc.
There are further uses in include/net/llc_pdu.h. All these are protected by a test skb->protocol == ETH_P_802_2. Which does not protect against this tun scenario.
But the mac_len test added in this patch in llc_fixup_skb will indirectly protect those too. That is called from llc_rcv before any other LLC code.
It is tempting to just add a blanket mac_len check in llc_rcv, but not sure whether that could break valid LLC paths that do not assume an Ethernet header. 802.2 LLC may be used on top of non-802.3 protocols in principle. The below referenced commit shows that used to, on top of Token Ring.
At least one of the three eth_hdr uses goes back to before the start of git history. But the one that syzbot exercises is introduced in this commit. That commit is old enough (2008), that effectively all stable kernels should receive this.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernel-toolsUpgrade kernel-debuginfo-common-x86_64Upgrade bpftool-debuginfoUpgrade bpftoolUpgrade python-perfUpgrade kernel-livepatch-4.14.330-250.540Upgrade kernel-livepatch-5.15.139-93.147Upgrade python-perf-debuginfoUpgrade kernel-develUpgrade kernel-headersUpgrade perf-debuginfoUpgrade kernel-tools-develUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade perfUpgrade kernel-debuginfoUpgrade kernelUpgrade kernel-livepatch-5.10.201-191.748 | Dec 12, 2024 | May 21, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-tools-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel-livepatch-6.1.66-91.160Upgrade kernel-libbpfUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-headersUpgrade kernel-libbpf-develUpgrade python3-perfUpgrade kernelUpgrade kernel-debuginfoUpgrade kernel-modules-extraUpgrade kernel-tools-develUpgrade bpftool-debuginfoUpgrade perfUpgrade python3-perf-debuginfoUpgrade kernel-develUpgrade perf-debuginfoUpgrade kernel-toolsUpgrade kernel-debuginfo-common-aarch64Upgrade bpftool | Feb 17, 2025 | May 21, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | May 21, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade python3-perfUpgrade kernel-toolsUpgrade kernelUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libs | Oct 8, 2024 | May 21, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade bpftoolUpgrade python3-perfUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade kernel | Oct 8, 2024 | May 21, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernelUpgrade python3-perfUpgrade kernel-toolsUpgrade kernel-tools-libs | Oct 8, 2024 | May 21, 2024 |
| Suse | — | Upgrade ocfs2-kmp-64kbUpgrade dtb-nvidiaUpgrade kernel-debug-livepatch-develUpgrade kernel-syms-rtUpgrade kernel-docsUpgrade kernel-azure-vdsoUpgrade cluster-md-kmp-defaultUpgrade dtb-marvellUpgrade kernel-defaultUpgrade kernel-rt-optionalUpgrade dlm-kmp-defaultUpgrade kernel-source-rtUpgrade kselftests-kmp-defaultUpgrade kernel-kvmsmall-vdsoUpgrade reiserfs-kmp-rtUpgrade kernel-default-manUpgrade dtb-socionextUpgrade dlm-kmp-rtUpgrade kernel-default-livepatch-develUpgrade dlm-kmp-azureUpgrade dtb-apmUpgrade dtb-amdUpgrade kernel-rt-vdsoUpgrade kernel-azure-extraUpgrade kernel-default-extraUpgrade reiserfs-kmp-64kbUpgrade cluster-md-kmp-64kbUpgrade dtb-broadcomUpgrade dtb-hisiliconUpgrade kernel-obs-qaUpgrade dtb-armUpgrade kernel-rt-livepatch-develUpgrade dtb-appleUpgrade kernel-rt_debug-livepatch-develUpgrade reiserfs-kmp-defaultUpgrade kernel-default-baseUpgrade dtb-sprdUpgrade dtb-renesasUpgrade kernel-azure-baseUpgrade kernel-64kb-extraUpgrade kernel-rt_debug-vdsoUpgrade kernel-64kb-optionalUpgrade kernel-rt_debugUpgrade kernel-debug-develUpgrade kernel-docs-htmlUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-macrosUpgrade kselftests-kmp-rtUpgrade kernel-debugUpgrade dtb-amlogicUpgrade kernel-azureUpgrade dtb-xilinxUpgrade reiserfs-kmp-azureUpgrade kernel-rtUpgrade kernel-rt-extraUpgrade kernel-debug-vdsoUpgrade kernel-rt-livepatchUpgrade ocfs2-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-default-vdsoUpgrade dtb-qcomUpgrade cluster-md-kmp-rtUpgrade kernel-symsUpgrade kernel-64kb-livepatch-develUpgrade kernel-azure-livepatch-develUpgrade gfs2-kmp-azureUpgrade kernel-develUpgrade dtb-alteraUpgrade gfs2-kmp-rtUpgrade dtb-freescaleUpgrade kernel-64kb-develUpgrade kernel-source-vanillaUpgrade dtb-lgUpgrade kernel-rt_debug-develUpgrade kernel-azure-optionalUpgrade kernel-azure-develUpgrade kernel-64kbUpgrade kernel-default-livepatchUpgrade gfs2-kmp-defaultUpgrade kernel-default-develUpgrade kselftests-kmp-azureUpgrade kernel-sourceUpgrade kernel-rt-develUpgrade dtb-amazonUpgrade kernel-devel-rtUpgrade cluster-md-kmp-azureUpgrade kernel-kvmsmallUpgrade gfs2-kmp-64kbUpgrade dtb-mediatekUpgrade kernel-obs-buildUpgrade dlm-kmp-64kbUpgrade dtb-allwinnerUpgrade dtb-caviumUpgrade dtb-exynosUpgrade kernel-source-azureUpgrade kernel-default-optionalUpgrade kernel-syms-azureUpgrade kernel-default-base-rebuildUpgrade dtb-rockchipUpgrade kernel-devel-azureUpgrade kselftests-kmp-64kbUpgrade ocfs2-kmp-azureUpgrade ocfs2-kmp-defaultUpgrade kernel-zfcpdump | Aug 9, 2024 | May 21, 2024 |
| Ubuntu | — | Upgrade linux-oracleUpgrade linux-kvmUpgrade linux-nvidiaUpgrade linux-intel-iotg-5.15Upgrade linux-fipsUpgrade linux-gcp-5.4Upgrade linux-lowlatencyUpgrade linux-gkeUpgrade linux-oracle-5.15Upgrade linux-riscv-5.15Upgrade linux-aws-5.4Upgrade linux-gcp-5.15Upgrade linux-intel-iotgUpgrade linux-gkeopUpgrade linux-hwe-5.4Upgrade linux-azure-5.15Upgrade linux-oracle-5.4Upgrade linux-ibmUpgrade linux-ibm-5.15Upgrade linux-raspiUpgrade linux-xilinx-zynqmpUpgrade linux-nvidia-tegra-igxUpgrade linux-realtimeUpgrade linux-aws-fipsUpgrade linux-nvidia-tegraUpgrade linux-azure-fipsUpgrade linux-nvidia-6.5Upgrade linux-aws-5.15Upgrade linux-iotUpgrade linux-azure-5.4Upgrade linux-raspi-5.4Upgrade linux-gkeop-5.15Upgrade linux-bluefieldUpgrade linux-azureUpgrade linux-lowlatency-hwe-5.15Upgrade linux-intel-iot-realtimeUpgrade linuxUpgrade linux-azure-fdeUpgrade linux-gcpUpgrade linux-hwe-5.15Upgrade linux-awsUpgrade linux-gcp-fipsUpgrade linux-ibm-5.4Upgrade linux-nvidia-tegra-5.15 | Nov 19, 2024 | May 21, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | May 21, 2024 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub