UBUNTU-CVE-2026-90036: Use After Free
In the Linux kernel, the following vulnerability has been resolved: NFSD: Prevent client use-after-free during blocked-lock reaping A bare lock owner -- its only remaining reference a blocked lock on nn->blockedlockslru -- holds a raw pointer to its nfs4client but no reference keeping the client alive. When the per-net laundromat reaps such a lock, freeing the nbl drops the owner reference held through flcowner, and the final nfs4putstateowner() takes the client's cllock. Because the laundromat detaches the nbl first, destroyclient() no longer finds it, so a concurrent forceexpireclient() can free the client before nfs4putstateowner() runs, dereferencing cllock in freed memory. Pin the client with clrpcusers before dropping nn->blockedlockslock, and skip clients already expiring, whose blocked locks destroyclient() frees while holding an owner reference. Take nn->clientlock outside nn->blockedlockslock. Every other site holds nn->blockedlockslock as a leaf, acquiring no further lock, so placing nn->clientlock outside it cannot form a lock-order cycle.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In the NFSD blocked-lock reaping path, pin the nfs4_client with cl_rpc_users before dropping nn->blocked_locks_lock; skip clients that are already expiring; and acquire nn->client_lock outside nn->blocked_locks_lock to preserve lock ordering.