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.
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
ubuntu | 18.04 | noarch | linux | < any | UNKNOWN |
ubuntu | 20.04 | noarch | linux | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux | < any | UNKNOWN |
ubuntu | 23.10 | noarch | linux | < any | UNKNOWN |
ubuntu | 24.04 | noarch | linux | < any | UNKNOWN |
ubuntu | 14.04 | noarch | linux | < any | UNKNOWN |
ubuntu | 16.04 | noarch | linux | < any | UNKNOWN |
ubuntu | 18.04 | noarch | linux-aws | < any | UNKNOWN |
ubuntu | 20.04 | noarch | linux-aws | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux-aws | < any | UNKNOWN |