CVE-2025-38126
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
03/07/2025
Last modified:
03/07/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
net: stmmac: make sure that ptp_rate is not 0 before configuring timestamping<br />
<br />
The stmmac platform drivers that do not open-code the clk_ptp_rate value<br />
after having retrieved the default one from the device-tree can end up<br />
with 0 in clk_ptp_rate (as clk_get_rate can return 0). It will<br />
eventually propagate up to PTP initialization when bringing up the<br />
interface, leading to a divide by 0:<br />
<br />
Division by zero in kernel.<br />
CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.30-00001-g48313bd5768a #22<br />
Hardware name: STM32 (Device Tree Support)<br />
Call trace:<br />
unwind_backtrace from show_stack+0x18/0x1c<br />
show_stack from dump_stack_lvl+0x6c/0x8c<br />
dump_stack_lvl from Ldiv0_64+0x8/0x18<br />
Ldiv0_64 from stmmac_init_tstamp_counter+0x190/0x1a4<br />
stmmac_init_tstamp_counter from stmmac_hw_setup+0xc1c/0x111c<br />
stmmac_hw_setup from __stmmac_open+0x18c/0x434<br />
__stmmac_open from stmmac_open+0x3c/0xbc<br />
stmmac_open from __dev_open+0xf4/0x1ac<br />
__dev_open from __dev_change_flags+0x1cc/0x224<br />
__dev_change_flags from dev_change_flags+0x24/0x60<br />
dev_change_flags from ip_auto_config+0x2e8/0x11a0<br />
ip_auto_config from do_one_initcall+0x84/0x33c<br />
do_one_initcall from kernel_init_freeable+0x1b8/0x214<br />
kernel_init_freeable from kernel_init+0x24/0x140<br />
kernel_init from ret_from_fork+0x14/0x28<br />
Exception stack(0xe0815fb0 to 0xe0815ff8)<br />
<br />
Prevent this division by 0 by adding an explicit check and error log<br />
about the actual issue. While at it, remove the same check from<br />
stmmac_ptp_register, which then becomes duplicate
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/030ce919e114a111e83b7976ecb3597cefd33f26
- https://git.kernel.org/stable/c/32af9c289234990752281c805500dfe03c5b2b8f
- https://git.kernel.org/stable/c/379cd990dfe752b38fcf46034698a9a150626c7a
- https://git.kernel.org/stable/c/b263088ee8ab14563817a8be3519af8e25225793
- https://git.kernel.org/stable/c/bb033c6781ce1b0264c3993b767b4aa9021959c2