Skip to content
Heist/ feed
Back to feed
CriticalFix available

nfsd: fix possible fh_compose of wrong dentry in nfsd4_create_file()

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: nfsd: fix possible fh_compose of wrong dentry in nfsd4_create_file() dentry_create() can hypothetically provide a different dentry than the one passed in. This could happen, for example, if the exported filesystem is NFS, and the server returned to OPEN a filehandle which matched a directory that was already in the dcache. Clearly this would not be expected! If this were to happen the dentry (child) that was already stored in resfhp could be freed and later dereferenced. We shouldn't call fh_compose() until we are certain that we have the final dentry, so this patch moved the fh_compose() call to two places: one for the case where the target already exists, and one after dentry_create() where it was created.

Products
Kernel
Affected versions
Not specified
Fixed versions
7.2.4
CVEs
CVE-2026-89677
Confirmed fixed CVEs
Not specified
Updated in this feed
6 Nov 2026, 02:33 UTC · Revision 1

Source evidence

nfsd: fix possible fh_compose of wrong dentry in nfsd4_create_file()

core-osv · Original source

Published 11 Sept 2026, 19:46 UTC

In the Linux kernel, the following vulnerability has been resolved: nfsd: fix possible fh_compose of wrong dentry in nfsd4_create_file() dentry_create() can hypothetically provide a different dentry than the one passed in. This could happen, for example, if the exported filesystem is NFS, and the server returned to OPEN a filehandle which matched a directory that was already in the dcache. Clearly this would not be expected! If this were to happen the dentry (child) that was already stored in resfhp could be freed and later dereferenced. We shouldn't call fh_compose() until we are certain that we have the final dentry, so this patch moved the fh_compose() call to two places: one for the case where the target already exists, and one after dentry_create() where it was created.

osv:CVE-2026-89677

Kernel

Fixed versions: 7.2.4

Complete source record
{
  "id": "c21f00786dbe1da72524158aaa3790a3de45c3d66639b68fa0fce8ea5739694d",
  "url": "https://osv.dev/vulnerability/CVE-2026-89677",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "nfsd: fix possible fh_compose of wrong dentry in nfsd4_create_file()",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: nfsd: fix possible fh_compose of wrong dentry in nfsd4_create_file() dentry_create() can hypothetically provide a different dentry than the one passed in. This could happen, for example, if the exported filesystem is NFS, and the server returned to OPEN a filehandle which matched a directory that was already in the dcache. Clearly this would not be expected! If this were to happen the dentry (child) that was already stored in resfhp could be freed and later dereferenced. We shouldn't call fh_compose() until we are certain that we have the final dentry, so this patch moved the fh_compose() call to two places: one for the case where the target already exists, and one after dentry_create() where it was created.",
    "evidence": "osv:CVE-2026-89677",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "7.2.4",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-89677",
      "aliases": [
        "CVE-2026-89677"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "64a989dbd144e0622371396461b11335459692d2"
                },
                {
                  "fixed": "033e783709ce99662cf81f6abcad746a8da9d35f"
                },
                {
                  "fixed": "3e2c79360c6a89975ec5b5a7d4ef937e4db91a27"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89677.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "7.0.0"
                },
                {
                  "fixed": "7.2.4"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89677.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:46.000055461Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/033e783709ce99662cf81f6abcad746a8da9d35f",
        "https://git.kernel.org/stable/c/3e2c79360c6a89975ec5b5a7d4ef937e4db91a27",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89677.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-89677",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89677.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-89677",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 514309,
  "published_at": "2026-09-11T19:46:01.185+00:00"
}