---
id: CVE-2022-50241
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  NFSD: fix use-after-free on source server when doing inter-server copy

  Use-after-free occurred when the laundromat tried to free expired
  cpntf_state entry on the s2s_c…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  NFSD: fix use-after-free on source server when doing inter-server copy

  Use-after-free occurred when the laundromat tried to free expired
  cpntf_state entry on the s2s_c…
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-416
vendor: linux
product: linux_kernel
affected:
  - linux_kernel < 5.10.150
  - 'linux_kernel >= 5.11, < 5.15.75'
  - 'linux_kernel >= 5.16, < 5.19.17'
  - 'linux_kernel >= 6.0, < 6.0.3'
patched:
  - linux_kernel 6.0.3
published: '2025-09-15'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T22:17:28.173'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2022-50241'
references:
  - url: 'https://git.kernel.org/stable/c/019805fea91599b22dfa62ffb29c022f35abeb06'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/35aa0fb8c3033a3d78603356e96fc18c5b9cceb2'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/6ea71246b7a02af675d733e72d14bd0d591d5f4a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/83b94969751a691347606dbe6b1865efcfa5a643'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/bbacfcde5fff25ac22597e8373a065c647da6738'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
epss: 0.0037
epssPercentile: 0.30727
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-15T21:30:36.338429Z'
ingestedAt: '2026-10-15T21:45:11.281Z'
---

## Overview

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

NFSD: fix use-after-free on source server when doing inter-server copy

Use-after-free occurred when the laundromat tried to free expired
cpntf_state entry on the s2s_cp_stateids list after inter-server
copy completed. The sc_cp_list that the expired copy state was
inserted on was already freed.

When COPY completes, the Linux client normally sends LOCKU(lock_state x),
FREE_STATEID(lock_state x) and CLOSE(open_state y) to the source server.
The nfs4_put_stid call from nfsd4_free_stateid cleans up the copy state
from the s2s_cp_stateids list before freeing the lock state's stid.

However, sometimes the CLOSE was sent before the FREE_STATEID request.
When this happens, the nfsd4_close_open_stateid call from nfsd4_close
frees all lock states on its st_locks list without cleaning up the copy
state on the sc_cp_list list. When the time the FREE_STATEID arrives the
server returns BAD_STATEID since the lock state was freed. This causes
the use-after-free error to occur when the laundromat tries to free
the expired cpntf_state.

This patch adds a call to nfs4_free_cpntf_statelist in
nfsd4_close_open_stateid to clean up the copy state before calling
free_ol_stateid_reaplist to free the lock state's stid on the reaplist.

## Affected

- `linux_kernel < 5.10.150`
- `linux_kernel >= 5.11, < 5.15.75`
- `linux_kernel >= 5.16, < 5.19.17`
- `linux_kernel >= 6.0, < 6.0.3`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.0.3`
