Skip to content
Heist/ feed
High

nfs: fix UAF in direct writes

Type: advisorySource: Official CVE List1 source record

In the Linux kernel, the following vulnerability has been resolved: nfs: fix UAF in direct writes In production we have been hitting the following warning consistently ------------[ cut here ]------------ refcount_t: underflow; use-after-free. WARNING: CPU: 17 PID: 1800359 at lib/refcount.c:28 refcount_warn_saturate+0x9c/0xe0 Workqueue: nfsiod nfs_direct_write_schedule_work [nfs] RIP: 0010:refcount_warn_saturate+0x9c/0xe0 PKRU: 55555554 Call Trace: ? __warn+0x9f/0x130 ? refcount_warn_saturate+0x9c/0xe0 ? report_bug+0xcc/0x150 ? handle_bug+0x3d/0x70 ? exc_invalid_op+0x16/0x40 ? asm_exc_invalid_op+0x16/0x20 ? refcount_warn_saturate+0x9c/0xe0 nfs_direct_write_schedule_work+0x237/0x250 [nfs] process_one_work+0x12f/0x4a0 worker_thread+0x14e/0x3b0 ? ZSTD_getCParams_internal+0x220/0x220 kthread+0xdc/0x120 ? __btf_name_valid+0xa0/0xa0 ret_from_fork+0x1f/0x30 This is because we're completing the nfs_direct_request twice in a row. The source of this is when we have our commit requests to submit, we process them and send them off, and then in the completion path for the commit requests we have if (nfs_commit_end(cinfo.mds)) nfs_direct_write_complete(dreq); However since we're submitting asynchronous requests we sometimes have one that completes before we submit the next one, so we end up calling complete on the nfs_direct_request twice. The only other place we use nfs_generic_commit_list() is in __nfs_commit_inode, which wraps this call in a nfs_commit_begin(); nfs_commit_end(); Which i

Announced Source revision 1
Original source ↗

CVE-2024-26958

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2024-26958

Linux

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Linux

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "af7cf057933f01dc7f33ddfb5e436ad598ed17ad",
        "lessThan": "6cd3f13aaa62970b5169d990e936b2e96943bc6a",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "af7cf057933f01dc7f33ddfb5e436ad598ed17ad",
        "lessThan": "4595d90b5d2ea5fa4d318d13f59055aa4bf3e7f5",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "af7cf057933f01dc7f33ddfb5e436ad598ed17ad",
        "lessThan": "80d24b308b7ee7037fc90d8ac99f6f78df0a256f",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "af7cf057933f01dc7f33ddfb5e436ad598ed17ad",
        "lessThan": "3abc2d160ed8213948b147295d77d44a22c88fa3",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "af7cf057933f01dc7f33ddfb5e436ad598ed17ad",
        "lessThan": "e25447c35f8745337ea8bc0c9697fcac14df8605",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "af7cf057933f01dc7f33ddfb5e436ad598ed17ad",
        "lessThan": "1daf52b5ffb24870fbeda20b4967526d8f9e12ab",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "af7cf057933f01dc7f33ddfb5e436ad598ed17ad",
        "lessThan": "cf54f66e1dd78990ec6b32177bca7e6ea2144a95",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "af7cf057933f01dc7f33ddfb5e436ad598ed17ad",
        "lessThan": "17f46b803d4f23c66cacce81db35fef3adb8f2af",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "fs/nfs/direct.c",
      "fs/nfs/write.c",
      "include/linux/nfs_fs.h"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "4.5"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "4.5",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "5.4.297",
        "versionType": "semver",
        "lessThanOrEqual": "5.4.*"
      },
      {
        "status": "unaffected",
        "version": "5.10.215",
        "versionType": "semver",
        "lessThanOrEqual": "5.10.*"
      },
      {
        "status": "unaffected",
        "version": "5.15.154",
        "versionType": "semver",
        "lessThanOrEqual": "5.15.*"
      },
      {
        "status": "unaffected",
        "version": "6.1.84",
        "versionType": "semver",
        "lessThanOrEqual": "6.1.*"
      },
      {
        "status": "unaffected",
        "version": "6.6.24",
        "versionType": "semver",
        "lessThanOrEqual": "6.6.*"
      },
      {
        "status": "unaffected",
        "version": "6.7.12",
        "versionType": "semver",
        "lessThanOrEqual": "6.7.*"
      },
      {
        "status": "unaffected",
        "version": "6.8.3",
        "versionType": "semver",
        "lessThanOrEqual": "6.8.*"
      },
      {
        "status": "unaffected",
        "version": "6.9",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "fs/nfs/direct.c",
      "fs/nfs/write.c",
      "include/linux/nfs_fs.h"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2024-26958

Source reference: /cveMetadata/cveId

Publisher severity

high

Source reference: /containers/cna/metrics

Event
#26467 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement