CVE Catalog

CVE-2026-89709

HighCVSS 8.1
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.33%

26th percentile - higher than 26% of all known CVEs

Summary

In the Linux kernel, the nlmsvc_ops pointer was published and cleared with plain stores while lockd dereferenced it unguarded from dispatch sites in fs/lockd/svcsubs.c. After nfsd module removal, a stale load could result in a NULL dereference or a module-text use-after-free.

Risk Assessment

A NULL dereference or use-after-free in the kernel can lead to a kernel panic or potential code execution, causing denial of service or a security breach.

Recommendation

Update the Linux kernel to a version containing the fix that RCU-protects nlmsvc_ops and pins the module via try_module_get/module_put.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: lockd, nfsd: RCU-protect nlmsvc_ops dispatch nlmsvc_ops is published by nfsd_lockd_init() and cleared by nfsd_lockd_shutdown() with plain stores, while lockd dereferences it unguarded from dispatch sites in fs/lockd/svcsubs.c. The pointer targets nfsd's .rodata and the fopen/fclose callbacks live in nfsd's .text, so a stale load after rmmod nfsd results in either a NULL deref or a module-text use-after-free. Declare nlmsvc_ops as __rcu, publish via rcu_assign_pointer(), clear via RCU_INIT_POINTER() + synchronize_rcu(). Add a struct module *owner field to nlmsvc_binding and pin the module across indirect calls with try_module_get/module_put. When the binding is torn down, fall back to fput() to avoid leaking struct file references.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS