CVE-2023-52505 phy: lynx-28g: serialize concurrent phy_set_mode_ext() calls to shared registers

Medium 4.7 Published Updated

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.

All Linux kernel vulnerabilities

Sources

Also known as BELL-CVE-2023-52505, DEBIAN-CVE-2023-52505, GHSA-mx24-9c8c-52xx, UBUNTU-CVE-2023-52505.

Is CVE-2023-52505 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free