CVE-2025-22025CWE-401

CVE-2025-22025

High · published April 16, 2025

CVSS v3.1
7.5
EPSS
1%
Percentile
47.0
In the wild
Unconfirmed
What it is

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

nfsd: put dl_stid if fail to queue dl_recall

Before calling nfsd4_run_cb to queue dl_recall to the callback_wq, we

increment the reference count of dl_stid.

We expect that after the corresponding work_struct is processed, the

reference count of dl_stid will be decremented through the callback

function nfsd4_cb_recall_release.

However, if the call to nfsd4_run_cb fails, the incremented reference

count of dl_stid will not be decremented correspondingly, leading to the

following nfs4_stid leak:

unreferenced object 0xffff88812067b578 (size 344):

comm "nfsd", pid 2761, jiffies 4295044002 (age 5541.241s)

hex dump (first 32 bytes):

01 00 00 00 6b 6b 6b 6b b8 02 c0 e2 81 88 ff ff ....kkkk........

00 6b 6b 6b 6b 6b 6b 6b 00 00 00 00 ad 4e ad de .kkkkkkk.....N..

backtrace:

kmem_cache_alloc+0x4b9/0x700

nfsd4_process_open1+0x34/0x300

nfsd4_open+0x2d1/0x9d0

nfsd4_proc_compound+0x7a2/0xe30

nfsd_dispatch+0x241/0x3e0

svc_process_common+0x5d3/0xcc0

svc_process+0x2a3/0x320

nfsd+0x180/0x2e0

kthread+0x199/0x1d0

ret_from_fork+0x30/0x50

ret_from_fork_asm+0x1b/0x30

unreferenced object 0xffff8881499f4d28 (size 368):

comm "nfsd", pid 2761, jiffies 4295044005 (age 5541.239s)

hex dump (first 32 bytes):

01 00 00 00 00 00 00 00 30 4d 9f 49 81 88 ff ff ........0M.I....

30 4d 9f 49 81 88 ff ff 20 00 00 00 01 00 00 00 0M.I.... .......

backtrace:

kmem_cache_alloc+0x4b9/0x700

nfs4_alloc_stid+0x29/0x210

alloc_init_deleg+0x92/0x2e0

nfs4_set_delegation+0x284/0xc00

nfs4_open_delegation+0x216/0x3f0

nfsd4_process_open2+0x2b3/0xee0

nfsd4_open+0x770/0x9d0

nfsd4_proc_compound+0x7a2/0xe30

nfsd_dispatch+0x241/0x3e0

svc_process_common+0x5d3/0xcc0

svc_process+0x2a3/0x320

nfsd+0x180/0x2e0

kthread+0x199/0x1d0

ret_from_fork+0x30/0x50

ret_from_fork_asm+0x1b/0x30

Fix it by checking the result of nfsd4_run_cb and call nfs4_put_stid if

fail to queue dl_recall.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00581 · 47.0th percentile
Weakness
CWE-401 · Missing Release of Memory after Effective Lifetime
Published
2025-04-16T19:15Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel< 5.10.2365.10.236
linux/linux_kernel≥ 5.11, < 5.15.1805.15.180
linux/linux_kernel≥ 5.16, < 6.1.1346.1.134
linux/linux_kernel≥ 6.2, < 6.6.876.6.87
linux/linux_kernel≥ 6.7, < 6.12.236.12.23
linux/linux_kernel≥ 6.13, < 6.13.116.13.11
linux/linux_kernel≥ 6.14, < 6.14.26.14.2
References (10)
EPSS history
Timeline
  • 16 APR 14:11Z
    nfsd: put dl_stid if fail to queue dl_recall
    cvelistv5