CVE-2025-38126

net: stmmac: make sure that ptp_rate is not 0 before configuring timestamping

State
Published
Severity
Not scored
Published
Jul 3, 2025
Updated
May 11, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

net: stmmac: make sure that ptp_rate is not 0 before configuring timestamping

The stmmac platform drivers that do not open-code the clk_ptp_rate value after having retrieved the default one from the device-tree can end up with 0 in clk_ptp_rate (as clk_get_rate can return 0). It will eventually propagate up to PTP initialization when bringing up the interface, leading to a divide by 0:

Division by zero in kernel. CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.30-00001-g48313bd5768a #22 Hardware name: STM32 (Device Tree Support) Call trace: unwind_backtrace from show_stack+0x18/0x1c show_stack from dump_stack_lvl+0x6c/0x8c dump_stack_lvl from Ldiv0_64+0x8/0x18 Ldiv0_64 from stmmac_init_tstamp_counter+0x190/0x1a4 stmmac_init_tstamp_counter from stmmac_hw_setup+0xc1c/0x111c stmmac_hw_setup from __stmmac_open+0x18c/0x434 __stmmac_open from stmmac_open+0x3c/0xbc stmmac_open from __dev_open+0xf4/0x1ac __dev_open from __dev_change_flags+0x1cc/0x224 __dev_change_flags from dev_change_flags+0x24/0x60 dev_change_flags from ip_auto_config+0x2e8/0x11a0 ip_auto_config from do_one_initcall+0x84/0x33c do_one_initcall from kernel_init_freeable+0x1b8/0x214 kernel_init_freeable from kernel_init+0x24/0x140 kernel_init from ret_from_fork+0x14/0x28 Exception stack(0xe0815fb0 to 0xe0815ff8)

Prevent this division by 0 by adding an explicit check and error log about the actual issue. While at it, remove the same check from stmmac_ptp_register, which then becomes duplicate

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 19d857c9038e5c07db8f8cc02b5ad0cd0098714f to before 32af9c289234990752281c805500dfe03c5b2b8fAffected
  • 19d857c9038e5c07db8f8cc02b5ad0cd0098714f to before b263088ee8ab14563817a8be3519af8e25225793Affected
  • 19d857c9038e5c07db8f8cc02b5ad0cd0098714f to before bb033c6781ce1b0264c3993b767b4aa9021959c2Affected
  • 19d857c9038e5c07db8f8cc02b5ad0cd0098714f to before 379cd990dfe752b38fcf46034698a9a150626c7aAffected
  • 19d857c9038e5c07db8f8cc02b5ad0cd0098714f to before 030ce919e114a111e83b7976ecb3597cefd33f26Affected
LinuxLinux
  • 4.5Affected
  • before 4.5Not affected
  • 6.1.142 through 6.1.*Not affected
  • 6.6.94 through 6.6.*Not affected
  • 6.12.34 through 6.12.*Not affected
  • 6.15.3 through 6.15.*Not affected
  • 6.16 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.