lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025090400-CVE-2025-38721-e31a@gregkh>
Date: Thu,  4 Sep 2025 17:33:26 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2025-38721: netfilter: ctnetlink: fix refcount leak on table dump

From: Greg Kroah-Hartman <gregkh@...nel.org>

Description
===========

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

netfilter: ctnetlink: fix refcount leak on table dump

There is a reference count leak in ctnetlink_dump_table():
      if (res < 0) {
                nf_conntrack_get(&ct->ct_general); // HERE
                cb->args[1] = (unsigned long)ct;
                ...

While its very unlikely, its possible that ct == last.
If this happens, then the refcount of ct was already incremented.
This 2nd increment is never undone.

This prevents the conntrack object from being released, which in turn
keeps prevents cnet->count from dropping back to 0.

This will then block the netns dismantle (or conntrack rmmod) as
nf_conntrack_cleanup_net_list() will wait forever.

This can be reproduced by running conntrack_resize.sh selftest in a loop.
It takes ~20 minutes for me on a preemptible kernel on average before
I see a runaway kworker spinning in nf_conntrack_cleanup_net_list.

One fix would to change this to:
        if (res < 0) {
		if (ct != last)
	                nf_conntrack_get(&ct->ct_general);

But this reference counting isn't needed in the first place.
We can just store a cookie value instead.

A followup patch will do the same for ctnetlink_exp_dump_table,
it looks to me as if this has the same problem and like
ctnetlink_dump_table, we only need a 'skip hint', not the actual
object so we can apply the same cookie strategy there as well.

The Linux kernel CVE team has assigned CVE-2025-38721 to this issue.


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

	Issue introduced in 2.6.18 with commit d205dc40798d97d63ad348bfaf7394f445d152d4 and fixed in 5.4.297 with commit 586892e341fbf698e7cbaca293e1353957db725a
	Issue introduced in 2.6.18 with commit d205dc40798d97d63ad348bfaf7394f445d152d4 and fixed in 5.10.241 with commit 962518c6ca9f9a13df099cafa429f72f68ad61f0
	Issue introduced in 2.6.18 with commit d205dc40798d97d63ad348bfaf7394f445d152d4 and fixed in 5.15.190 with commit 19b909a4b1452fb97e477d2f08b97f8d04095619
	Issue introduced in 2.6.18 with commit d205dc40798d97d63ad348bfaf7394f445d152d4 and fixed in 6.1.149 with commit 41462f4cfc583513833f87f9ee55d12da651a7e3
	Issue introduced in 2.6.18 with commit d205dc40798d97d63ad348bfaf7394f445d152d4 and fixed in 6.6.103 with commit 30cf811058552b8cd0e98dff677ef3f89d6d34ce
	Issue introduced in 2.6.18 with commit d205dc40798d97d63ad348bfaf7394f445d152d4 and fixed in 6.12.43 with commit a2cb4df7872de069f809de2f076ec8e54d649fe3
	Issue introduced in 2.6.18 with commit d205dc40798d97d63ad348bfaf7394f445d152d4 and fixed in 6.15.11 with commit e14f72aa66c029db106921d621edcedef68e065b
	Issue introduced in 2.6.18 with commit d205dc40798d97d63ad348bfaf7394f445d152d4 and fixed in 6.16.2 with commit a62d6aa3f31f216b637a4c71b7a8bfc7c57f049b
	Issue introduced in 2.6.18 with commit d205dc40798d97d63ad348bfaf7394f445d152d4 and fixed in 6.17-rc2 with commit de788b2e6227462b6dcd0e07474e72c089008f74

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-2025-38721
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/netfilter/nf_conntrack_netlink.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/586892e341fbf698e7cbaca293e1353957db725a
	https://git.kernel.org/stable/c/962518c6ca9f9a13df099cafa429f72f68ad61f0
	https://git.kernel.org/stable/c/19b909a4b1452fb97e477d2f08b97f8d04095619
	https://git.kernel.org/stable/c/41462f4cfc583513833f87f9ee55d12da651a7e3
	https://git.kernel.org/stable/c/30cf811058552b8cd0e98dff677ef3f89d6d34ce
	https://git.kernel.org/stable/c/a2cb4df7872de069f809de2f076ec8e54d649fe3
	https://git.kernel.org/stable/c/e14f72aa66c029db106921d621edcedef68e065b
	https://git.kernel.org/stable/c/a62d6aa3f31f216b637a4c71b7a8bfc7c57f049b
	https://git.kernel.org/stable/c/de788b2e6227462b6dcd0e07474e72c089008f74

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ