Executive brief
A vulnerability in the Linux kernel's networking component could allow a local user with administrative privileges to crash the system. The issue occurs when specific network routing configurations (nexthops) are modified in a way that the kernel does not expect, leading to a system failure. This could result in a complete denial of service for the affected device or server.
Technical details
A NULL pointer dereference (NPD) exists in the Linux kernel's nexthop implementation within net/ipv4/nexthop.c. The vulnerability is rooted in the `replace_nexthop_single` function, which failed to prevent changing a nexthop's Forwarding Database (FDB) status while that nexthop was a member of a nexthop group. Because FDB nexthops are not associated with a specific nexthop device, this inconsistent state causes `fib_lookup_good_nhc` to dereference a NULL pointer when processing routes associated with the group. An attacker with CAP_NET_ADMIN privileges can exploit this by creating a nexthop group and then using 'ip nexthop replace' to toggle the FDB flag, subsequently triggering the crash via network traffic. The fix introduces a check to forbid FDB status changes for nexthops currently in a group.
Affected products
- Linux Linux Kernel 38428d68719c to 390b3a300d78
- Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP V3.1.6
- Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP V3.1.6
- Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP V3.1.6
Timeline
- 2025-09-21: disclosed: Initial patch submission by Ido Schimmel
- 2025-09-23: patched: Mainline kernel patch committed
- 2025-10-15: advisory: CVE-2025-39980 published
References
- https://git.kernel.org/stable/c/0e7bfe7a268ccbd7859730c529161cafbf44637c
- https://git.kernel.org/stable/c/24046d31f6f92220852d393d510b6062843e3fbd
- https://git.kernel.org/stable/c/390b3a300d7872cef9588f003b204398be69ce08
- https://git.kernel.org/stable/c/8dd4aa0122885f710930de135af2adc4ccc3238f
- https://git.kernel.org/stable/c/e1e87ac0daacd51f522ecd1645cd76b5809303ed
- https://git.kernel.org/stable/c/ec428fff792b7bd15b248dafca2e654b666b1304
- https://git.kernel.org/stable/c/f0e49fd13afe9dea7a09a1c9537fd00cea22badb