CVE-2026-93212: nfsd: guard nfsd_serv deref in nfsd_file_net_dispose

Published Sep 24, 2026
·
Updated

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

nfsd: guard nfsdserv deref in nfsdfilenetdispose

nfsdfilenetdispose() is the consumer side of l->freeme: the nfsd service thread loop calls it to drain entries that the filecache garbage collector and shrinker append via nfsdfiledisposelistdelayed(). During per-net teardown, nn->nfsdserv is cleared before the filecache laundrette is shut down, so the service thread can still run a dispose pass that finds more than eight entries on l->freeme and dereferences a NULL svcserv:

nfsd service thread loop nfsdfilenetdispose(nn) if (!listempty(&l->freeme)) { ... svcwakeup(nn->nfsdserv); / nn->nfsdserv == NULL / }

The sibling helper nfsdfiledisposelistdelayed() already documents this ordering and caches nn->nfsdserv into a local before testing it for NULL. nfsdfilenetdispose() was introduced with the same raw svcwakeup(nn->nfsdserv) call and never picked up the guard.

Fix by loading nn->nfsdserv into a local svcserv pointer and only calling svcwakeup() when it is non-NULL, matching the pattern in nfsdfiledisposelistdelayed().

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 24, 2026
CVE Published
via MITRE·03:10 PM
Data Sourced
via MITRE·03:10 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Frequently Asked Questions

1

When can this issue be triggered?

It can occur during per-network-namespace teardown, after nn->nfsd_serv has been cleared but before the filecache laundrette has stopped. A service-thread dispose pass must then encounter more than eight entries on the freeme list.

2

What is the impact of the vulnerable code path?

The NFS server service thread can dereference a NULL svc_serv pointer when it calls svc_wake_up(nn->nfsd_serv). This happens in nfsd_file_net_dispose() while processing delayed filecache disposal entries.

3

What is the fix?

Update to a kernel version containing the referenced fixes. The correction stores nn->nfsd_serv in a local pointer and calls svc_wake_up() only when that pointer is non-NULL.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203