{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2026-64108",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2026-64108"
  ],
  "published": "2026-07-19T15:41:06Z",
  "summary": "cifs: Fix busy dentry used after unmounting",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\ncifs: Fix busy dentry used after unmounting\n\nSince commit 340cea84f691c (\"cifs: open files should not hold ref on\nsuperblock\"), cifs file only holds the dentry ref_cnt, the cifs file\nclose work(cfile->deferred) could be executed after unmounting, which\nwill trigger a warning in generic_shutdown_super:\n BUG: Dentry 00000000a14a6845{i=c,n=file}  still in use (1) [unmount of\n cifs cifs]\n\nThe detailed processs is:\n   process A           process B           kworker\n fd = open(PATH)\n  vfs_open\n   file->__f_path = *path // dentry->d_lockref.count = 1\n   cifs_open\n    cifs_new_fileinfo\n     cfile->dentry = dget(dentry) // dentry->d_lockref.count = 2\n close(fd)\n  __fput\n  cifs_close\n   queue_delayed_work(deferredclose_wq, cfile->deferred)\n  dput(dentry) // dentry->d_lockref.count = 1\n\t\t\t                 smb2_deferred_work_close\n\t\t\t\t\t  _cifsFileInfo_put\n\t\t\t\t\t   list_del(&cifs_file->flist)\n                    umount\n\t\t     cleanup_mnt\n\t\t      deactivate_super\n\t\t       cifs_kill_sb\n\t\t        cifs_close_all_deferred_files_sb\n\t\t\t cifs_close_all_deferred_files\n\t\t\t  // cannot find cfile, skip _cifsFileInfo_put\n\t\t\tkill_anon_super\n\t\t\t generic_shutdown_super\n\t\t\t  shrink_dcache_for_umount\n\t\t\t   umount_check\n\t\t\t    WARN ! // dentry->d_lockref.count = 1\n\t\t\t\t\t   cifsFileInfo_put_final\n\t\t\t\t\t    dput(cifs_file->dentry)\n\t\t                            // dentry->d_lockref.count = 0\n\nFix it by flushing 'deferredclose_wq' before calling kill_anon_super.\n\nFetch a reproducer in https://bugzilla.kernel.org/show_bug.cgi?id=221548.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:12",
        "name": "linux"
      },
      "versions": [
        "1:6.12.87-1+rpt1~bookworm"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.12.87+rpt-rpi-2712",
            "binary_version": "1:6.12.87-1+rpt1~bookworm"
          },
          {
            "binary_name": "linux-image-6.12.87+rpt-rpi-v6",
            "binary_version": "1:6.12.87-1+rpt1~bookworm"
          },
          {
            "binary_name": "linux-image-6.12.87+rpt-rpi-v7",
            "binary_version": "1:6.12.87-1+rpt1~bookworm"
          },
          {
            "binary_name": "linux-image-6.12.87+rpt-rpi-v7l",
            "binary_version": "1:6.12.87-1+rpt1~bookworm"
          },
          {
            "binary_name": "linux-image-6.12.87+rpt-rpi-v8",
            "binary_version": "1:6.12.87-1+rpt1~bookworm"
          },
          {
            "binary_name": "linux-image-6.12.87+rpt-rpi-v8-rt",
            "binary_version": "1:6.12.87-1+rpt1~bookworm"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.12.87-1+rpt1~bookworm": {
            "linux_commit": "ae4d75fb36deba0fe1a986d9bfae65755e082dd0",
            "upstream_version": "6.12.87",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.12.92"
          }
        }
      }
    },
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:13",
        "name": "linux"
      },
      "versions": [
        "1:6.18.29-1+rpt1",
        "1:6.18.33-1+rpt1"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-2712",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-v6",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-v7",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-v8",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-v8-rt",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-2712",
            "binary_version": "1:6.18.33-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-v6",
            "binary_version": "1:6.18.33-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-v7",
            "binary_version": "1:6.18.33-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-v8",
            "binary_version": "1:6.18.33-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-v8-rt",
            "binary_version": "1:6.18.33-1+rpt1"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.18.29-1+rpt1": {
            "linux_commit": "66318c5b5cd8145a662303af12ed39ac07eb27cc",
            "upstream_version": "6.18.29",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.18.34"
          },
          "1:6.18.33-1+rpt1": {
            "linux_commit": "95b85bebbedcaedfa7ca79116ed38b7376fba412",
            "upstream_version": "6.18.33",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.18.34"
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2026-64108"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/c7364cea52531534676b9f7dbc0a477c11f4c050"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/bdc349a87f1fb02c18c4071858a06542bfea783d"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/f2deaa2f409a4598eaa10f2a93a676c0632af248"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/5e7d9d0805e58fa3760894e73115b7a74024fd07"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/e1ffa6cf662383f95816eed1b623429d82675e75"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/c68337442f03953237a94577beb468ab2662a851"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-05T13:16:28Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 7.8,
      "cvss_v3_severity": "High",
      "scenario": "AV:L - The bug is reached through local VFS syscalls (open, close, umount) in the CIFS client mount teardown path, not through remote packet handling or in-kernel SMB server code.\nAC:L - An attacker controls both sides of the race by opening/closing files to queue deferred-close work (default 1-second closetimeo) and concurrently triggering umount, and can retry until the window is hit.\nPR:L - Exploitation requires only an unprivileged local user with access to files on an already-mounted CIFS/SMB3 share; mount/umount can be supplied by the attacker in a separate thread if they hold CAP_SYS_ADMIN, or by autofs/system umount on shared enterprise mounts.\nUI:N - No victim interaction is required; the attacker drives the open/close/umount syscall sequence directly without relying on another user to open files or click anything.\nS:U - Impact is confined to kernel memory corruption and privilege boundaries within the same host; this is not a VM escape, sandbox escape, or cross-security-authority boundary flaw.\nC:H - The deferred-close worker performs use-after-free on dentry, inode, and super_block structures after unmount teardown, which can be leveraged for arbitrary kernel memory read per standard UAF guidance.\nI:H - Post-unmount _cifsFileInfo_put() and cifsFileInfo_put_final() operate on freed kernel objects and can corrupt heap metadata or control flow, enabling arbitrary write or code execution primitives.\nA:H - The race triggers a WARN in generic_shutdown_super during umount and subsequent use-after-free in the deferred-close worker can cause kernel oops, panic, or hang."
    }
  }
}
