---
id: CVE-2026-89682
title: 'nfsd: fix fcache_disposal UAF by inlining dispose state into nfsd_net'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  nfsd: fix fcache_disposal UAF by inlining dispose state into nfsd_net

  nfsd_file_dispose_list_delayed() defers fput() to nfsd service threads
  via a per-net freeme queue…
severity: high
cvss: 8.1
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-416
  - CWE-825
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 <
    e6c3a43d0a41f03abae3764fc82a59369360c7e0
  - >-
    Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 <
    9c8ac7c2b9b150e13b7ad0d0fae54f17747dce67
  - >-
    Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 <
    ba0ee9e04b7a0356c28d5a2fe445db675d24e572
  - >-
    Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 <
    cadc9036d5a8209f89e7026ddba7cfb1c716b03c
  - >-
    Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 <
    bbf13732f74351d21c5e0e8dd9bd8e1c48dc35d4
  - Linux e8f923e1e9fcc0832a12c8a2461792e5a9544c03
  - Linux 3bc94fb44f10ef852723e1aeaac6794c5ab16aec
  - Linux >= 5.10.220 < 5.11
  - Linux >= 5.15.154 < 5.16
  - Linux 5.17
published: '2026-09-11'
updated: '2026-10-21'
sourceUpdated: '2026-10-21T12:48:18.923Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-89682'
references:
  - url: 'https://git.kernel.org/stable/c/e6c3a43d0a41f03abae3764fc82a59369360c7e0'
  - url: 'https://git.kernel.org/stable/c/9c8ac7c2b9b150e13b7ad0d0fae54f17747dce67'
  - url: 'https://git.kernel.org/stable/c/ba0ee9e04b7a0356c28d5a2fe445db675d24e572'
  - url: 'https://git.kernel.org/stable/c/cadc9036d5a8209f89e7026ddba7cfb1c716b03c'
  - url: 'https://git.kernel.org/stable/c/bbf13732f74351d21c5e0e8dd9bd8e1c48dc35d4'
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89682.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-89682'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2532019'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-89682'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-89682'
  - url: >-
      https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-89682.mbox
  - url: 'https://kernelcve.org/list/?q=CVE-2026-89682'
tags:
  - cve.org
  - csaf
  - vex
  - red-hat
  - score-dispute
epss: 0.00552
epssPercentile: 0.4595
scores:
  cna: 8.1
  vendor: 5.3
ingestedAt: '2026-09-14T15:23:07.473Z'
---

## Overview

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

nfsd: fix fcache_disposal UAF by inlining dispose state into nfsd_net

nfsd_file_dispose_list_delayed() defers fput() to nfsd service threads
via a per-net freeme queue, preventing the shrinker and GC worker from
bearing the cost of closing files (see ffb402596147).  However, the
queue lives in a separately-allocated struct nfsd_fcache_disposal that
is freed by nfsd_free_fcache_disposal_net() during per-net teardown.
The global shrinker, laundrette, and fsnotify callbacks can still be
inside nfsd_file_dispose_list_delayed() dereferencing that pointer,
causing a use-after-free.

Inline the spinlock and freeme list directly into struct nfsd_net (as
fcache_dispose_lock and fcache_dispose_list), eliminating the separately
allocated struct nfsd_fcache_disposal entirely.  These fields now have
the same lifetime as the net namespace itself, so there is no dangling
pointer to chase.

nfsd_file_cache_start_net() now just initializes the inline fields and
cannot fail due to allocation.  nfsd_file_cache_shutdown_net() drains
the inline list directly instead of freeing a separate struct.  The
alloc/free helpers are removed.

## Affected

- `Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 < e6c3a43d0a41f03abae3764fc82a59369360c7e0`
- `Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 < 9c8ac7c2b9b150e13b7ad0d0fae54f17747dce67`
- `Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 < ba0ee9e04b7a0356c28d5a2fe445db675d24e572`
- `Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 < cadc9036d5a8209f89e7026ddba7cfb1c716b03c`
- `Linux >= 1463b38e7cf34d4cc60f41daff459ad807b2e408 < bbf13732f74351d21c5e0e8dd9bd8e1c48dc35d4`
- `Linux e8f923e1e9fcc0832a12c8a2461792e5a9544c03`
- `Linux 3bc94fb44f10ef852723e1aeaac6794c5ab16aec`
- `Linux >= 5.10.220 < 5.11`
- `Linux >= 5.15.154 < 5.16`
- `Linux 5.17`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Vendor advisories

- **Red Hat VEX** · Moderate · affected: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 9, Red Hat OpenShift Container Platform 4 · no fix planned: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 9, Red Hat OpenShift Container Platform 4 · updated 2026-10-21 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89682.json)
