CVE-2026-53399

NameCVE-2026-53399
DescriptionIn the Linux kernel, the following vulnerability has been resolved: nfsd: release layout stid on setlease failure nfs4_alloc_stid() publishes the new stid into cl->cl_stateids via idr_alloc_cyclic() under cl_lock before returning to nfsd4_alloc_layout_stateid(). When nfsd4_layout_setlease() then fails, the error path frees the layout stateid directly with kmem_cache_free() without ever calling idr_remove(), leaving the IDR slot pointing at freed slab memory. Any subsequent IDR walker (states_show, client teardown) dereferences the dangling pointer. The correct teardown for an IDR-published stid is nfs4_put_stid(), which removes the IDR slot under cl_lock, dispatches sc_free (nfsd4_free_layout_stateid) to release ls->ls_file via nfsd4_close_layout(), and drops the nfs4_file reference in its tail. A second issue blocks that switch: nfsd4_free_layout_stateid() unconditionally inspects ls->ls_fence_work via delayed_work_pending() under ls_lock, but INIT_DELAYED_WORK(&ls->ls_fence_work, ...) currently runs only after the setlease call. On the setlease-failure path the destructor would touch an uninitialized delayed_work. nfsd4_alloc_layout_stateid() nfs4_alloc_stid() /* idr_alloc_cyclic under cl_lock */ nfsd4_layout_setlease() /* fails */ nfs4_put_stid() nfsd4_free_layout_stateid() delayed_work_pending(&ls->ls_fence_work) /* needs INIT */ nfsd4_close_layout() /* nfsd_file_put(ls->ls_file) */ put_nfs4_file() Fix by hoisting the ls_fenced / ls_fence_delay / INIT_DELAYED_WORK initialization above the nfsd4_layout_setlease() call, and replace the manual nfsd_file_put + put_nfs4_file + kmem_cache_free cleanup with a single nfs4_put_stid(stp).
SourceCVE (at NVD; CERT, ENISA, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)
ReferencesDLA-4717-1, DLA-4720-1, DLA-4723-1, DLA-4724-1, DSA-6393-1

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
linux (PTS)bullseye5.10.223-1vulnerable
bullseye (security)5.10.262-1fixed
bookworm6.1.176-1vulnerable
bookworm (security)6.1.180-1fixed
trixie6.12.94-1vulnerable
trixie (security)6.12.101-1fixed
forky, sid7.1.7-1fixed
linux-6.1 (PTS)bullseye (security)6.1.180-1~deb11u1fixed
linux-6.12 (PTS)bookworm (security)6.12.100-1~deb12u1fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
linuxsourcebullseye5.10.262-1DLA-4717-1
linuxsourcebookworm6.1.180-1DLA-4720-1
linuxsourcetrixie6.12.96-1DSA-6393-1
linuxsource(unstable)7.1.3-1
linux-6.1sourcebullseye6.1.180-1~deb11u1DLA-4723-1
linux-6.12sourcebookworm6.12.100-1~deb12u1DLA-4724-1

Notes

https://git.kernel.org/linus/30d55c8aabb261bc3f427d6b9aae7ef6206063f9 (7.2-rc1)

Search for package or bug name: Reporting problems