CVE-2023-52505 phy: lynx-28g: serialize concurrent phy_set_mode_ext() calls to shared registers
Concurrent calls to phy_set_mode_ext() can corrupt hardware register values due to missing locking in the Linux kernel lynx-28g driver.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2023-52505?
CVE-2023-52505 is a medium-severity vulnerability in Linux kernel, published on 2 Mar 2024. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
phy: lynx-28g: serialize concurrent phy_set_mode_ext() calls to shared registers
The protocol converter configuration registers PCC8, PCCC, PCCD (implemented by the driver), as well as others, control protocol converters from multiple lanes (each represented as a different struct phy). So, if there are simultaneous calls to phy_set_mode_ext() to lanes sharing the same PCC register (either for the "old" or for the "new" protocol), corruption of the values programmed to hardware is possible, because lynx_28g_rmw() has no locking.
Add a spinlock in the struct lynx_28g_priv shared by all lanes, and take the global spinlock from the phy_ops :: set_mode() implementation. There are no other callers which modify PCC registers.
Weakness: CWE-667
Which versions are affected by CVE-2023-52505?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2023-52505?
Apply the vendor's patch.
Is CVE-2023-52505 being exploited?
There is no known exploitation of CVE-2023-52505 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as BELL-CVE-2023-52505, DEBIAN-CVE-2023-52505, GHSA-mx24-9c8c-52xx, UBUNTU-CVE-2023-52505.