CVE-2022-50241CWE-416

CVE-2022-50241

High · published September 15, 2025

CVSS v3.1
8.8
EPSS
0%
Percentile
29.7
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
8.8 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00370 · 29.7th percentile
Weakness
CWE-416 · Use After Free
Published
2025-09-15T18:15Z
Affected products (4)
ProductVersionsFixed in
linux/linux_kernel< 5.10.1505.10.150
linux/linux_kernel≥ 5.11, < 5.15.755.15.75
linux/linux_kernel≥ 5.16, < 5.19.175.19.17
linux/linux_kernel≥ 6.0, < 6.0.36.0.3
References (5)
EPSS history
Timeline
  • 15 SEP 14:01Z
    NFSD: fix use-after-free on source server when doing inter-server copy
    cvelistv5