Executive brief
A vulnerability exists in the Linux kernel's Point-to-Point Protocol (PPP) implementation, which is used for establishing network connections. Due to a flaw in how the system handles internal data lists, a race condition can occur that leads to a system crash (kernel panic). This could allow an attacker to disrupt network services or potentially gain unauthorized access to the system.
Technical details
A race condition exists in the ppp_fill_forward_path() function within the Linux kernel's PPP implementation (drivers/net/ppp/ppp_generic.c). The vulnerability arises because the ppp->channels list can be modified between a list_empty() check and a list_first_entry() call without holding the ppp_lock, potentially leading to access of a freed entry. Additionally, pch->chan can be set to NULL during unregistration before the channel is removed from the list, leading to a NULL pointer dereference. Attackers can exploit this to trigger a kernel panic. The fix involves implementing a lockless RCU approach using list_first_or_null_rcu(), RCU list modification variants, and proper NULL checks for pch->chan.
Affected products
- Linux Linux Kernel 5.13 to 6.16.4
- Siemens SIMATIC CN 4100 before V5.0
Timeline
- 2025-08-14: patched: Initial patch submitted by Qingfang Deng
- 2025-09-05: disclosed: CVE-2025-39673 published
References
- https://git.kernel.org/stable/c/0417adf367a0af11adf7ace849af4638cfb573f7
- https://git.kernel.org/stable/c/0f1630be6fcca3f0c63e4b242ad202e5cde28a40
- https://git.kernel.org/stable/c/94731cc551e29511d85aa8dec61a6c071b1f2430
- https://git.kernel.org/stable/c/9a1969fbffc1f1900d92d7594b1b7d8d72ef3dc7
- https://git.kernel.org/stable/c/ca18d751bcc9faf5b7e82e9fae1223d103928181
- https://git.kernel.org/stable/c/f97f6475fdcb3c28ff3c55cc4b7bde632119ec08
- https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html