Skip to content
OpenAdvisories
Unscored CVE-2022-48808 EUVD-2022-53687GHSA-qx47-vp39-p7g5

net: dsa: fix panic when DSA master device unbinds on shutdown

Published Jul 16, 2024 · Updated May 11, 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.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.15 Package: linux-azure-5.19 Package: linux-azure-5.3 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.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 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.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.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 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-nvidia Package: linux-nvidia-6.2 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-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.8 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime 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-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: dsa: fix panic when DSA master device unbinds on shutdown

Rafael reports that on a system with LX2160A and Marvell DSA switches,
if a reboot occurs while the DSA master (dpaa2-eth) is up, the following
panic can be seen:

systemd-shutdown[1]: Rebooting.
Unable to handle kernel paging request at virtual address 00a0000800000041
[00a0000800000041] address between user and kernel address ranges
Internal error: Oops: 96000004 [#1] PREEMPT SMP
CPU: 6 PID: 1 Comm: systemd-shutdow Not tainted 5.16.5-00042-g8f5585009b24 #32
pc : dsa_slave_netdevice_event+0x130/0x3e4
lr : raw_notifier_call_chain+0x50/0x6c
Call trace:
dsa_slave_netdevice_event+0x130/0x3e4
raw_notifier_call_chain+0x50/0x6c
call_netdevice_notifiers_info+0x54/0xa0
__dev_close_many+0x50/0x130
dev_close_many+0x84/0x120
unregister_netdevice_many+0x130/0x710
unregister_netdevice_queue+0x8c/0xd0
unregister_netdev+0x20/0x30
dpaa2_eth_remove+0x68/0x190
fsl_mc_driver_remove+0x20/0x5c
__device_release_driver+0x21c/0x220
device_release_driver_internal+0xac/0xb0
device_links_unbind_consumers+0xd4/0x100
__device_release_driver+0x94/0x220
device_release_driver+0x28/0x40
bus_remove_device+0x118/0x124
device_del+0x174/0x420
fsl_mc_device_remove+0x24/0x40
__fsl_mc_device_remove+0xc/0x20
device_for_each_child+0x58/0xa0
dprc_remove+0x90/0xb0
fsl_mc_driver_remove+0x20/0x5c
__device_release_driver+0x21c/0x220
device_release_driver+0x28/0x40
bus_remove_device+0x118/0x124
device_del+0x174/0x420
fsl_mc_bus_remove+0x80/0x100
fsl_mc_bus_shutdown+0xc/0x1c
platform_shutdown+0x20/0x30
device_shutdown+0x154/0x330
__do_sys_reboot+0x1cc/0x250
__arm64_sys_reboot+0x20/0x30
invoke_syscall.constprop.0+0x4c/0xe0
do_el0_svc+0x4c/0x150
el0_svc+0x24/0xb0
el0t_64_sync_handler+0xa8/0xb0
el0t_64_sync+0x178/0x17c

It can be seen from the stack trace that the problem is that the
deregistration of the master causes a dev_close(), which gets notified
as NETDEV_GOING_DOWN to dsa_slave_netdevice_event().
But dsa_switch_shutdown() has already run, and this has unregistered the
DSA slave interfaces, and yet, the NETDEV_GOING_DOWN handler attempts to
call dev_close_many() on those slave interfaces, leading to the problem.

The previous attempt to avoid the NETDEV_GOING_DOWN on the master after
dsa_switch_shutdown() was called seems improper. Unregistering the slave
interfaces is unnecessary and unhelpful. Instead, after the slaves have
stopped being uppers of the DSA master, we can now reset to NULL the
master->dsa_ptr pointer, which will make DSA start ignoring all future
notifier events on the master.

Affected products

VendorProductAffectedFixed
Linux Linux 5.15 5.15.155

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.16.10-1 —
Debian 13 linux 5.16.10-1 —
Debian 12 linux 5.16.10-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1047.49 —
Ubuntu 24.04 LTS linux-raspi-realtime No fix yet —
Ubuntu 22.04 LTS linux +1 5.15.0-116.126 —
Ubuntu 22.04 LTS linux-aws 5.15.0-1065.71 —
Ubuntu 22.04 LTS linux-azure 5.15.0-1068.77 USN-6917-1
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1068.77.1 USN-6917-1
Ubuntu 22.04 LTS linux-gcp 5.15.0-1064.72 —
Ubuntu 22.04 LTS linux-gke 5.15.0-1062.68 —
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1048.55 —
Ubuntu 22.04 LTS linux-ibm +1 5.15.0-1058.61 USN-6919-1
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1060.66 —
Ubuntu 22.04 LTS linux-kvm 5.15.0-1062.67 —
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1060.61 —
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1026.26 —
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1015.15 —
Ubuntu 22.04 LTS linux-oracle 5.15.0-1063.69 —
Ubuntu 22.04 LTS linux-riscv +24 No fix yet —
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-1065.71~20.04.1 —
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1068.77~20.04.1 USN-6917-1
Ubuntu 20.04 LTS linux-azure-fde-5.15 5.15.0-1068.77~20.04.1.1 USN-6917-1
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1065.73~20.04.1 USN-6927-1
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 20.04 LTS linux-gkeop-5.15 5.15.0-1048.55~20.04.1 —
Ubuntu 20.04 LTS linux-hwe-5.15 +1 5.15.0-116.126~20.04.1 —
Ubuntu 20.04 LTS linux-ibm-5.15 5.15.0-1058.61~20.04.1 —
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1060.66~20.04.1 —
Ubuntu 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1027.27~20.04.1 —
Ubuntu 20.04 LTS linux-oracle-5.15 5.15.0-1063.69~20.04.1 —
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1061.65~20.04.1 —
Ubuntu 18.04 LTS linux-gcp +13 No fix yet —
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1058.60 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1066.74 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1065.71+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1068.77+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-115.125+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1064.72+fips1 —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP5 kernel-64kb +4 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
SLES 15 SP5 kernel-azure +2 5.14.21-150500.33.66.1 SUSE-SU-2024:3190-1
SLES 15 SP5 kernel-default-base 5.14.21-150500.55.80.2.150500.6.35.6 SUSE-SU-2024:3483-1
SLES 15 SP5 kernel-syms +1 5.14.21-150500.55.80.1 SUSE-SU-2024:3483-1
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 5.5 kernel-default 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
SLE Micro 5.5 kernel-default-base 5.14.21-150500.55.80.2.150500.6.35.6 SUSE-SU-2024:3483-1
SLE Micro 5.5 kernel-rt +1 5.14.21-150500.13.67.3 SUSE-SU-2024:3209-1
SLE Live Patching 15 SP5 kernel-default 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_19 +1 1-150500.11.3.2 SUSE-SU-2024:3483-1, SUSE-SU-2024:3209-1
SUSE Real Time Module 15 SP5 kernel-rt +2 5.14.21-150500.13.67.3 SUSE-SU-2024:3209-1
SUSE Real Time Module 15 SP5 kernel-syms-rt 5.14.21-150500.13.67.1 SUSE-SU-2024:3209-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.5 dtb-aarch64 +3 5.14.21-150500.55.80.1 SUSE-SU-2024:3483-1
openSUSE Leap 15.5 kernel-64kb +6 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
openSUSE Leap 15.5 kernel-azure +2 5.14.21-150500.33.66.1 SUSE-SU-2024:3190-1
openSUSE Leap 15.5 kernel-default-base 5.14.21-150500.55.80.2.150500.6.35.6 SUSE-SU-2024:3483-1
openSUSE Leap 15.5 kernel-rt +2 5.14.21-150500.13.67.3 SUSE-SU-2024:3209-1
openSUSE Leap 15.5 kernel-syms-rt 5.14.21-150500.13.67.1 SUSE-SU-2024:3209-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.5 kernel-default 5.14.21-150500.55.80.2 SUSE-SU-2024:3483-1
openSUSE Leap Micro 5.5 kernel-default-base 5.14.21-150500.55.80.2.150500.6.35.6 SUSE-SU-2024:3483-1
openSUSE Leap Micro 5.5 kernel-rt 5.14.21-150500.13.67.3 SUSE-SU-2024:3209-1

Advisories 8

References