CVE-2023-52505 Information

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

ew\ 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.

Reference

https://git.kernel.org/stable/c/6f901f8448c6b25ed843796b114471d2a3fc5dfb https://git.kernel.org/stable/c/c2d7c79898b427d263c64a4841987eec131f2d4e https://git.kernel.org/stable/c/139ad1143151a07be93bf741d4ea7c89e59f89ce

Share on: