---
id: CVE-2025-38721
title: |-
  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(…
summary: |-
  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(…
severity: medium
cvss: 5.5
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 2.6.19, < 5.4.297'
  - 'linux_kernel >= 5.5, < 5.10.241'
  - 'linux_kernel >= 5.11, < 5.15.190'
  - 'linux_kernel >= 5.16, < 6.1.149'
  - 'linux_kernel >= 6.2, < 6.6.103'
  - 'linux_kernel >= 6.7, < 6.12.43'
  - 'linux_kernel >= 6.13, < 6.15.11'
  - 'linux_kernel >= 6.16, < 6.16.2'
  - linux_kernel = 2.6.18
  - linux_kernel = 6.17
  - debian_linux = 11.0
patched:
  - linux_kernel 6.16.2
published: '2025-09-04'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T02:17:57.323'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-38721'
references:
  - url: 'https://git.kernel.org/stable/c/19b909a4b1452fb97e477d2f08b97f8d04095619'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/30cf811058552b8cd0e98dff677ef3f89d6d34ce'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/41462f4cfc583513833f87f9ee55d12da651a7e3'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/586892e341fbf698e7cbaca293e1353957db725a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/962518c6ca9f9a13df099cafa429f72f68ad61f0'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/a2cb4df7872de069f809de2f076ec8e54d649fe3'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/a62d6aa3f31f216b637a4c71b7a8bfc7c57f049b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/de788b2e6227462b6dcd0e07474e72c089008f74'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/e14f72aa66c029db106921d621edcedef68e065b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-019113.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-032379.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-082556.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-457936.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.0017
epssPercentile: 0.06356
ingestedAt: '2026-09-08T15:33:26.997Z'
---

## Overview

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.

## Affected

- `linux_kernel >= 2.6.19, < 5.4.297`
- `linux_kernel >= 5.5, < 5.10.241`
- `linux_kernel >= 5.11, < 5.15.190`
- `linux_kernel >= 5.16, < 6.1.149`
- `linux_kernel >= 6.2, < 6.6.103`
- `linux_kernel >= 6.7, < 6.12.43`
- `linux_kernel >= 6.13, < 6.15.11`
- `linux_kernel >= 6.16, < 6.16.2`
- `linux_kernel = 2.6.18`
- `linux_kernel = 6.17`
- `debian_linux = 11.0`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.16.2`
