* CVE-2026-52925: vrf: Fix a potential NPD when removing a port from a VRF
@ 2026-06-24 7:13 Greg Kroah-Hartman
0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-06-24 7:13 UTC (permalink / raw)
To: linux-cve-announce; +Cc: Greg Kroah-Hartman
From: Greg Kroah-Hartman <gregkh@kernel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
vrf: Fix a potential NPD when removing a port from a VRF
RCU readers that identified a net device as a VRF port using
netif_is_l3_slave() assume that a subsequent call to
netdev_master_upper_dev_get_rcu() will return a VRF device. They then
continue to dereference its l3mdev operations.
This assumption is not always correct and can result in a NPD [1]. There
is no RCU synchronization when removing a port from a VRF, so it is
possible for an RCU reader to see a new master device (e.g., a bridge)
that does not have l3mdev operations.
Fix by adding RCU synchronization after clearing the IFF_L3MDEV_SLAVE
flag. Skip this synchronization when a net device is removed from a VRF
as part of its deletion and when the VRF device itself is deleted. In
the latter case an RCU grace period will pass by the time RTNL is
released.
[1]
BUG: kernel NULL pointer dereference, address: 0000000000000000
[...]
RIP: 0010:l3mdev_fib_table_rcu (net/l3mdev/l3mdev.c:181)
[...]
Call Trace:
<TASK>
l3mdev_fib_table_by_index (net/l3mdev/l3mdev.c:201 net/l3mdev/l3mdev.c:189)
__inet_bind (net/ipv4/af_inet.c:499 (discriminator 3))
inet_bind_sk (net/ipv4/af_inet.c:469)
__sys_bind (./include/linux/file.h:62 (discriminator 1) ./include/linux/file.h:83 (discriminator 1) net/socket.c:1951 (discriminator 1))
__x64_sys_bind (net/socket.c:1969 (discriminator 1) net/socket.c:1967 (discriminator 1) net/socket.c:1967 (discriminator 1))
do_syscall_64 (arch/x86/entry/syscall_64.c:63 (discriminator 1) arch/x86/entry/syscall_64.c:94 (discriminator 1))
entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130)
The Linux kernel CVE team has assigned CVE-2026-52925 to this issue.
Affected and fixed versions
===========================
Issue introduced in 4.12 with commit fdeea7be88b12742bfd50d9e19a06c0d2e702400 and fixed in 5.10.258 with commit 2c022f582fd16a470df6ed9e7fb7e9fc48946d49
Issue introduced in 4.12 with commit fdeea7be88b12742bfd50d9e19a06c0d2e702400 and fixed in 5.15.209 with commit 4ab6fc60ed5a0344b60711b09bff1dc238d8d6a4
Issue introduced in 4.12 with commit fdeea7be88b12742bfd50d9e19a06c0d2e702400 and fixed in 6.1.175 with commit 468defa0b70902a22f4478c1207624bc1b31c124
Issue introduced in 4.12 with commit fdeea7be88b12742bfd50d9e19a06c0d2e702400 and fixed in 6.6.141 with commit 3db8d078f7f652379ee394132b169d304f6eb4c1
Issue introduced in 4.12 with commit fdeea7be88b12742bfd50d9e19a06c0d2e702400 and fixed in 6.12.91 with commit 8c2b792f04a3db97c9d8d2a45817e93f8884baf5
Issue introduced in 4.12 with commit fdeea7be88b12742bfd50d9e19a06c0d2e702400 and fixed in 6.18.33 with commit a7a97f2303e63ede105c1d55ef53dc497364e11d
Issue introduced in 4.12 with commit fdeea7be88b12742bfd50d9e19a06c0d2e702400 and fixed in 7.0.10 with commit d47204c127992da0c976ac9747070a575912e0fe
Issue introduced in 4.12 with commit fdeea7be88b12742bfd50d9e19a06c0d2e702400 and fixed in 7.1 with commit 2674d603a9e6970463b2b9ebcf8e31e90beae169
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2026-52925
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
drivers/net/vrf.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/2c022f582fd16a470df6ed9e7fb7e9fc48946d49
https://git.kernel.org/stable/c/4ab6fc60ed5a0344b60711b09bff1dc238d8d6a4
https://git.kernel.org/stable/c/468defa0b70902a22f4478c1207624bc1b31c124
https://git.kernel.org/stable/c/3db8d078f7f652379ee394132b169d304f6eb4c1
https://git.kernel.org/stable/c/8c2b792f04a3db97c9d8d2a45817e93f8884baf5
https://git.kernel.org/stable/c/a7a97f2303e63ede105c1d55ef53dc497364e11d
https://git.kernel.org/stable/c/d47204c127992da0c976ac9747070a575912e0fe
https://git.kernel.org/stable/c/2674d603a9e6970463b2b9ebcf8e31e90beae169
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-24 7:15 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-24 7:13 CVE-2026-52925: vrf: Fix a potential NPD when removing a port from a VRF Greg Kroah-Hartman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox