{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-89664 in the wild and no public exploit code.","fix":"Apply the vendor's patch.","what":"CVE-2026-89664 is a high-severity memory corruption vulnerability in Linux, published on 11 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-89664 and fix it if it is affected.\n\nWhat it is: CVE-2026-89664 is a high-severity memory corruption vulnerability in Linux, published on 11 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-89664 in the wild and no public exploit code.\n\nAffected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-89664/ (Markdown: https://insights.sbomify.com/CVE-2026-89664/index.md)","id":"CVE-2026-89664","markdown":"https://insights.sbomify.com/CVE-2026-89664/index.md","name":"CVE-2026-89664","record":{"aliases":["DEBIAN-CVE-2026-89664","GHSA-2mmp-54r9-hmh2","UBUNTU-CVE-2026-89664"],"analysis":{"component_type":"kernel","fix_type":"patch","impacts":["denial_of_service"],"network_reachable":"yes","non_default_config":false,"product_category":"Linux kernel NFS server","requires_auth":"none","summary":"A memory leak in the Linux kernel NFS server allows attackers to exhaust kernel memory via malformed OPEN compounds, causing denial of service.","user_interaction":"not_required","vuln_class":"memory_corruption"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Linux","cpe":[],"cvss":{"score":7.5,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"},"cwes":[],"description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: release OPEN-decoded posix ACLs via op_release\n\nnfsd4_decode_createhow4() calls nfsd4_decode_fattr4(), which allocates\nrefcounted struct posix_acl objects via posix_acl_alloc() and stores\nthem in open-\u003eop_pacl and open-\u003eop_dpacl. These pointers must be\nreleased once the OPEN compound finishes.\n\nWhen nfsd4_decode_open_claim4() returns a non-seqid-mutating error,\nthe dispatcher short-circuits before op_func runs:\n\n    nfsd4_proc_compound()\n      if (op-\u003estatus \u0026\u0026 op-\u003eopnum == OP_OPEN)\n          op-\u003estatus = nfsd4_open_omfg(...)\n              if (!seqid_mutating_err(ntohl(op-\u003estatus)))\n                  return op-\u003estatus;   /* nfsd4_open() never runs */\n      ...\n      opdesc-\u003eop_release(\u0026op-\u003eu)  /* must still release op_pacl/op_dpacl */\n\nBefore this change OP_OPEN had no .op_release in nfsd4_ops[], and the\nrelease pair lived inside nfsd4_open() at its out_err: label. On the\nshort-circuit path nfsd4_open() is never invoked, so both posix_acl\nrefs leak on every malformed OPEN compound that carries valid POSIX\nACL createhow4 attributes.\n\nAdd nfsd4_open_release() and wire it as .op_release for OP_OPEN.\nposix_acl_release() is NULL-safe, so the single release site covers\nboth the normal path and the nfsd4_open_omfg short-circuit. Remove\nthe matching posix_acl_release() pair from nfsd4_open()'s out_err:\nlabel to avoid double-releasing.\n\nThe compound loop has two encoding branches: nfsd4_encode_operation()\nfor normal ops, and nfsd4_encode_replay() for v4.0 replayed ops.\nop_release was only called from nfsd4_encode_operation(), so resources\nattached to op-\u003eu leak on the replay path.\n\nMove the op_release() call out of nfsd4_encode_operation() and the\nreplay branch, placing it after the if-else in nfsd4_proc_compound().\nThis gives a single call site in a fairly obviously-correct place,\ncovering both the normal encoding and replay paths.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"nfsd: release OPEN-decoded posix ACLs via op_release","id":"CVE-2026-89664","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"memory_corruption","year":"2026"},"n_packages":0,"n_references":2,"next":{"headline":"nfsd: reject out-of-range useconds in NFSv2 SETATTR/CREATE","id":"CVE-2026-89665"},"packages":[],"prev":{"headline":"nfsd: revoke copy-notify stateids before dropping their reference","id":"CVE-2026-89663"},"products":["Linux"],"published":"2026-09-11","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":"PUBLISHED","updated":"2026-10-19","vendors":["Linux"]},"summary":"A memory leak in the Linux kernel NFS server allows attackers to exhaust kernel memory via malformed OPEN compounds, causing denial of service.","url":"https://insights.sbomify.com/CVE-2026-89664/"}