Linux: net: stmmac: initialize ptp_lock at probe time
What fixes it
- 7ced87834f3a58761d4bbcabf8326478548e6a54LinuxCVE List
- 79fb5bcc50996964e076dffbdc24b7d2c06bd957LinuxCVE List
- 420315413b29635de1d4ea4142e410e6465260f3LinuxCVE List
- 25cc0096efba83b4e0e6fa50f03e9543b41e9d3dLinuxCVE List
- 0338c68e22abd2ee509ec2e32508a50896618c32LinuxCVE 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: stmmac: initialize ptp_lock at probe time
priv->ptp_lock is only initialized in stmmac_ptp_register(), which runs during __stmmac_open(). However, the lock is also used while the interface is down and has never been opened: tc_taprio_configure() invokes the PTP gettime64() callback to compute the EST base time when offloading a TAPRIO schedule, and stmmac_get_time() takes priv->ptp_lock. Using an uninitialized rwlock is undefined behaviour. Move the rwlock_init() to __stmmac_dvr_probe(), together with the other private locks, so that ptp_lock is always valid regardless of the interface state.
Text from CVE List
Affected versions 16
- Linuxaffected: b60189e0392fa06348911077ef281eb2b1047b6a before ee33e424d4932c70f103b94a46b685923f236f65CVE List
- Linuxaffected: b60189e0392fa06348911077ef281eb2b1047b6a before 7ced87834f3a58761d4bbcabf8326478548e6a54CVE List
- Linuxaffected: b60189e0392fa06348911077ef281eb2b1047b6a before 79fb5bcc50996964e076dffbdc24b7d2c06bd957CVE List
- Linuxaffected: b60189e0392fa06348911077ef281eb2b1047b6a before 420315413b29635de1d4ea4142e410e6465260f3CVE List
- Linuxaffected: b60189e0392fa06348911077ef281eb2b1047b6a before 25cc0096efba83b4e0e6fa50f03e9543b41e9d3dCVE List
- Linuxaffected: b60189e0392fa06348911077ef281eb2b1047b6a before b1986595cf827c38ff929e22fbc9ca8f76379306CVE List
- Linuxaffected: b60189e0392fa06348911077ef281eb2b1047b6a before 0338c68e22abd2ee509ec2e32508a50896618c32CVE List
- Linuxaffected: 5.6CVE List
- Linuxunaffected: all versions before 5.6CVE List
- Linuxunaffected: 5.15.222 through 5.15.*CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.111 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2.7 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 7
- git.kernel.org/stable/c/ee33e424d4932c70f103b94a46b685923f236f65Referencevia CVE List
- git.kernel.org/stable/c/7ced87834f3a58761d4bbcabf8326478548e6a54Referencevia CVE List
- git.kernel.org/stable/c/79fb5bcc50996964e076dffbdc24b7d2c06bd957Referencevia CVE List
- git.kernel.org/stable/c/420315413b29635de1d4ea4142e410e6465260f3Referencevia CVE List
- git.kernel.org/stable/c/25cc0096efba83b4e0e6fa50f03e9543b41e9d3dReferencevia CVE List
- git.kernel.org/stable/c/b1986595cf827c38ff929e22fbc9ca8f76379306Referencevia CVE List
- git.kernel.org/stable/c/0338c68e22abd2ee509ec2e32508a50896618c32Referencevia CVE List