All of lore.kernel.org
 help / color / mirror / Atom feed
* CVE-2026-89488: openvswitch: Fix CT limit teardown use-after-free
@ 2026-09-11 19:42 Greg Kroah-Hartman
  0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-09-11 19:42 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:

openvswitch: Fix CT limit teardown use-after-free

Packet processing uses CT limit state under RCU, while netns teardown
frees that state under ovs_mutex. The CT limit pointer was neither removed
from readers nor protected by a grace period, allowing packet processing to
dereference the freed state.

An unprivileged user can trigger this bug from a user and network
namespace, causing a slab-use-after-free in ovs_ct_execute() when the
netns is torn down.

Publish the CT limit pointer through RCU, remove it before teardown, and
wait for readers before freeing its contents. Keep ovs_mutex around
individual CT limit updates, and use the RCU read-side lock while GET
traverses the RCU-protected limit lists.

Netns teardown detaches the RCU-protected CT limit state in the pernet
.pre_exit callback while holding ovs_mutex.  The pernet core guarantees an
RCU grace period between the .pre_exit and .exit callbacks, so the .exit
callback completes the teardown without adding any extra synchronization.

The netlink command handlers do not need NULL checks because the userspace
netlink socket holds an active reference to its network namespace while a
request is processed. The per-netns exit path therefore cannot run
concurrently with SET, DEL, or GET for that socket's namespace.

The Linux kernel CVE team has assigned CVE-2026-89488 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 4.18 with commit 11efd5cb04a184eea4f57b68ea63dddd463158d1 and fixed in 6.18.51 with commit e15407c3a8a005324f633cd46cd8fb58042c1157
	Issue introduced in 4.18 with commit 11efd5cb04a184eea4f57b68ea63dddd463158d1 and fixed in 7.2.4 with commit 6a6d36fadb8537d9b79e72c9fa51885ec0c33e10
	Issue introduced in 4.18 with commit 11efd5cb04a184eea4f57b68ea63dddd463158d1 and fixed in 7.3-rc1 with commit 403f96c32c9e24600093d7d0c61c17daeedca957

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-89488
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:
	net/openvswitch/conntrack.c
	net/openvswitch/conntrack.h
	net/openvswitch/datapath.c
	net/openvswitch/datapath.h


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/e15407c3a8a005324f633cd46cd8fb58042c1157
	https://git.kernel.org/stable/c/6a6d36fadb8537d9b79e72c9fa51885ec0c33e10
	https://git.kernel.org/stable/c/403f96c32c9e24600093d7d0c61c17daeedca957

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-11 19:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 19:42 CVE-2026-89488: openvswitch: Fix CT limit teardown use-after-free Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.