In the Linux kernel, the following vulnerability has been resolved: NFSD: Defer sub-object cleanup in export put callbacks svcexportput() calls pathput() and authdomainput() immediately when the last reference drops, before the RCU grace period. RCU readers in eshow() and cshow() access both expath (via seqpath/dpath) and exclient->name (via seqescape) without holding a reference. If cacheclean removes the entry and drops the last reference concurrently, the sub-objects are freed while still in use, producing a NULL pointer dereference in dpath. Commit 2530766492ec ("nfsd: fix UAF when access exuuid or exstats") moved kfree of exuuid and exstats into the callrcu callback, but left pathput() and authdomainput() running before the grace period because both may sleep and callrcu callbacks execute in softirq context. Replace callrcu/kfreercu with queuercuwork(), which defers the callback until after the RCU grace period and executes it in process context where sleeping is permitted. This allows pathput() and authdomainput() to be moved into the deferred callback alongside the other resource releases. Apply the same fix to expkeyput(), which has the identical pattern with ekpath and ekclient. A dedicated workqueue scopes the shutdown drain to only NFSD export release work items; flushing the shared systemunboundwq would stall on unrelated work from other subsystems. nfsdexportshutdown() uses rcubarrier() followed by flush_workqueue() to ensure all deferred release callbacks complete before the export caches are destroyed. Reviwed-by: Jeff Layton jlayton@kernel.org