{"id":"CVE-2026-89662","revision":"2573b5fcaa134f78a6ebc7aef209c400","records":[{"revision":"2573b5fcaa134f78a6ebc7aef209c400","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-89662","aliases":[],"title":"NFSD: Prevent lock owner use-after-free during client teardown","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: Prevent lock owner use-after-free during client teardown\n\n__destroy_client() releases a client's open owners, but a lock owner\nwhose only reference is a blocked lock (nbl) stays on\ncl_ownerstr_hashtbl.  client_has_state() does not count a bare owner,\nso DESTROY_CLIENTID can reach __destroy_client() with such owners\npresent.\n\n__destroy_client() then walks the table, calling remove_blocked_locks()\non each owner without a reference.  Freeing a blocked lock drops the\nowner reference held via flc_owner.  The per-net laundromat reaps\nblocked locks from nn->blocked_locks_lru independently of client state.\nThe two paths share blocked_locks_lock only for the list splice, not\nthe owner's lifetime.  The laundromat therefore frees the owner as\n__destroy_client() dereferences it, a NULL dereference in\nremove_blocked_locks().\n\nnfsd4_release_lockowner() holds a reference across the same call;\n__destroy_client() does not.  Hold cl_lock across the walk, taking a\nreference and unhashing each owner, then drop it before\nremove_blocked_locks() and nfs4_put_stateowner(), which take\nblocked_locks_lock and cl_lock.","state":0,"publishedAt":"2026-09-11T19:45:49.833+00:00","modifiedAt":"2026-10-19T08:50:33.792+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/nfsd/nfs4state.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"68ef3bc3166468678d5e1fdd216628c35bd1186f\",\n                            \"lessThan\": \"42d7954b0a1907d4ef122aef94561952a033cdc3\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"68ef3bc3166468678d5e1fdd216628c35bd1186f\",\n                            \"lessThan\": \"bb38ff8b4dafbbd1781ad37cd96722fdf2cd972a\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"68ef3bc3166468678d5e1fdd216628c35bd1186f\",\n                            \"lessThan\": \"b8bad5a11416b26cc7fd4b18fba46d75ff636558\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"68ef3bc3166468678d5e1fdd216628c35bd1186f\",\n                            \"lessThan\": \"1ce74d1b7770e69735e8f8e509807af4ff9c8ee7\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"68ef3bc3166468678d5e1fdd216628c35bd1186f\",\n                            \"lessThan\": \"a6ead6fff3a7d03e49845f048f7000a2e0d34431\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"68ef3bc3166468678d5e1fdd216628c35bd1186f\",\n                            \"lessThan\": \"4804c58f73a80d12df1de323bf97a164f6ee8743\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"68ef3bc3166468678d5e1fdd216628c35bd1186f\",\n                            \"lessThan\": \"8cf4ff0a7c083dd5e0067f517d63979b74b66649\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"68ef3bc3166468678d5e1fdd216628c35bd1186f\",\n                            \"lessThan\": \"5e2fa29d223a9a1e6a948e40b109d09081d1decd\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"e294c4c2d33b7307a89cdf31bec08a112d6a9297\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"797bfd05d4040fbf766198b3cfcc1838002cc890\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"0f44e9da465ea259b6c9f31a627f3c50a16e1679\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4.9.91\",\n                            \"lessThan\": \"4.10\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"4.14.31\",\n                            \"lessThan\": \"4.15\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"4.15.14\",\n                            \"lessThan\": \"4.16\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/nfsd/nfs4state.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"4.16\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"4.16\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.270\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.221\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.188\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.157\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.109\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.50\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.4\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":9.8,"severity":"CRITICAL"}],"references":["https://git.kernel.org/stable/c/42d7954b0a1907d4ef122aef94561952a033cdc3","https://git.kernel.org/stable/c/bb38ff8b4dafbbd1781ad37cd96722fdf2cd972a","https://git.kernel.org/stable/c/b8bad5a11416b26cc7fd4b18fba46d75ff636558","https://git.kernel.org/stable/c/1ce74d1b7770e69735e8f8e509807af4ff9c8ee7","https://git.kernel.org/stable/c/a6ead6fff3a7d03e49845f048f7000a2e0d34431","https://git.kernel.org/stable/c/4804c58f73a80d12df1de323bf97a164f6ee8743","https://git.kernel.org/stable/c/8cf4ff0a7c083dd5e0067f517d63979b74b66649","https://git.kernel.org/stable/c/5e2fa29d223a9a1e6a948e40b109d09081d1decd"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89662","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-89662","identifiers":["CVE-2026-89662"]},"retained":false,"historicalAffected":[]}],"coverage":[]}