{"id":"CVE-2026-22989","state":"PUBLISHED","title":"nfsd: check that server is running in unlock_filesystem","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: check that server is running in unlock_filesystem\n\nIf we are trying to unlock the filesystem via an administrative\ninterface and nfsd isn't running, it crashes the server. This\nhappens currently because nfsd4_revoke_states() access state\nstructures (eg., conf_id_hashtbl) that has been freed as a part\nof the server shutdown.\n\n[   59.465072] Call trace:\n[   59.465308]  nfsd4_revoke_states+0x1b4/0x898 [nfsd] (P)\n[   59.465830]  write_unlock_fs+0x258/0x440 [nfsd]\n[   59.466278]  nfsctl_transaction_write+0xb0/0x120 [nfsd]\n[   59.466780]  vfs_write+0x1f0/0x938\n[   59.467088]  ksys_write+0xfc/0x1f8\n[   59.467395]  __arm64_sys_write+0x74/0xb8\n[   59.467746]  invoke_syscall.constprop.0+0xdc/0x1e8\n[   59.468177]  do_el0_svc+0x154/0x1d8\n[   59.468489]  el0_svc+0x40/0xe0\n[   59.468767]  el0t_64_sync_handler+0xa0/0xe8\n[   59.469138]  el0t_64_sync+0x1ac/0x1b0\n\nEnsure this can't happen by taking the nfsd_mutex and checking that\nthe server is still up, and then holding the mutex across the call to\nnfsd4_revoke_states().","publishedAt":"2026-01-23T15:24:10.523Z","updatedAt":"2026-05-11T21:57:50.971Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1ac3629bf012592cb0320e52a1cceb319a05ad17","status":"affected","lessThan":"d95499900fe52f3d461ed26b7a30bebea8f12914","versionType":"git"},{"version":"1ac3629bf012592cb0320e52a1cceb319a05ad17","status":"affected","lessThan":"e06c9f6c0f554148d4921c2a15bd054260a054ac","versionType":"git"},{"version":"1ac3629bf012592cb0320e52a1cceb319a05ad17","status":"affected","lessThan":"d0424066fcd294977f310964bed6f2a487fa4515","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/nfsd/nfs4state.c","fs/nfsd/nfsctl.c","fs/nfsd/state.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.9","versionType":"semver"},{"version":"6.12.66","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.6","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/nfsd/nfs4state.c","fs/nfsd/nfsctl.c","fs/nfsd/state.h"]}],"references":["https://git.kernel.org/stable/c/d95499900fe52f3d461ed26b7a30bebea8f12914","https://git.kernel.org/stable/c/e06c9f6c0f554148d4921c2a15bd054260a054ac","https://git.kernel.org/stable/c/d0424066fcd294977f310964bed6f2a487fa4515"],"weaknesses":[],"ingestedAt":"2026-10-29T20:11:21.040Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/22xxx/CVE-2026-22989.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-22989","state":"PUBLISHED","datePublished":"2026-01-23T15:24:10.523Z","dateUpdated":"2026-05-11T21:57:50.971Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-01-13T15:37:45.937Z"},"containers":{"cna":{"title":"nfsd: check that server is running in unlock_filesystem","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: check that server is running in unlock_filesystem\n\nIf we are trying to unlock the filesystem via an administrative\ninterface and nfsd isn't running, it crashes the server. This\nhappens currently because nfsd4_revoke_states() access state\nstructures (eg., conf_id_hashtbl) that has been freed as a part\nof the server shutdown.\n\n[   59.465072] Call trace:\n[   59.465308]  nfsd4_revoke_states+0x1b4/0x898 [nfsd] (P)\n[   59.465830]  write_unlock_fs+0x258/0x440 [nfsd]\n[   59.466278]  nfsctl_transaction_write+0xb0/0x120 [nfsd]\n[   59.466780]  vfs_write+0x1f0/0x938\n[   59.467088]  ksys_write+0xfc/0x1f8\n[   59.467395]  __arm64_sys_write+0x74/0xb8\n[   59.467746]  invoke_syscall.constprop.0+0xdc/0x1e8\n[   59.468177]  do_el0_svc+0x154/0x1d8\n[   59.468489]  el0_svc+0x40/0xe0\n[   59.468767]  el0t_64_sync_handler+0xa0/0xe8\n[   59.469138]  el0t_64_sync+0x1ac/0x1b0\n\nEnsure this can't happen by taking the nfsd_mutex and checking that\nthe server is still up, and then holding the mutex across the call to\nnfsd4_revoke_states()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1ac3629bf012592cb0320e52a1cceb319a05ad17","status":"affected","lessThan":"d95499900fe52f3d461ed26b7a30bebea8f12914","versionType":"git"},{"version":"1ac3629bf012592cb0320e52a1cceb319a05ad17","status":"affected","lessThan":"e06c9f6c0f554148d4921c2a15bd054260a054ac","versionType":"git"},{"version":"1ac3629bf012592cb0320e52a1cceb319a05ad17","status":"affected","lessThan":"d0424066fcd294977f310964bed6f2a487fa4515","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/nfsd/nfs4state.c","fs/nfsd/nfsctl.c","fs/nfsd/state.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.9","versionType":"semver"},{"version":"6.12.66","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.6","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/nfsd/nfs4state.c","fs/nfsd/nfsctl.c","fs/nfsd/state.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/d95499900fe52f3d461ed26b7a30bebea8f12914"},{"url":"https://git.kernel.org/stable/c/e06c9f6c0f554148d4921c2a15bd054260a054ac"},{"url":"https://git.kernel.org/stable/c/d0424066fcd294977f310964bed6f2a487fa4515"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:57:50.971Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.9","versionEndExcluding":"6.12.66"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.9","versionEndExcluding":"6.18.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.9","versionEndExcluding":"6.19"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}