Linux: net: sparx5: skip ptp deinit if init was skipped
What fixes it
- 35c706d6eb1963735814c5f5bb2674a96eacf3ccLinuxCVE List
- 2879b65bfa548e10d59c5fba91d17f8a00cd7029LinuxCVE List
- 0d2c49915bc3aea4521cda5e4d42f24f63b94585LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
net: sparx5: skip ptp deinit if init was skipped
sparx5_ptp_init() returns early on the base lan969x variants because they do not have the SPX5_FEATURE_PTP flag. It also returns early when no "ptp" interrupt is described. Unbinding the driver then causes a NULL pointer dereference when cleaning up uninitialized tx_skbs queues:
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008 Call trace: skb_queue_purge_reason+0x68/0x120 (P) sparx5_ptp_deinit+0x64/0xc0 mchp_sparx5_remove+0x38/0x70 platform_remove+0x20/0x30 device_remove+0x4c/0x80
Before per-port tx_skbs were added, a NULL dereference would have happened when calling ptp_clock_unregister() on the never-registered PTP clocks.
Fix by returning early in sparx5_ptp_deinit() if PTP is not used.
Text from CVE List
Affected versions 8
- Linuxaffected: 0933bd04047c3b96ba49545a8f91e7e6f8f666ff before 35c706d6eb1963735814c5f5bb2674a96eacf3ccCVE List
- Linuxaffected: 0933bd04047c3b96ba49545a8f91e7e6f8f666ff before 2879b65bfa548e10d59c5fba91d17f8a00cd7029CVE List
- Linuxaffected: 0933bd04047c3b96ba49545a8f91e7e6f8f666ff before 0d2c49915bc3aea4521cda5e4d42f24f63b94585CVE List
- Linuxaffected: 5.18CVE List
- Linuxunaffected: all versions before 5.18CVE List
- Linuxunaffected: 6.18.56 through 6.18.*CVE List
- Linuxunaffected: 7.2.10 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List