2026-02-14 16:27CVE-2026-23201Linux
PUBLISHED5.2

ceph: fix oops due to invalid pointer for kfree() in parse_longname()

In the Linux kernel, the following vulnerability has been resolved:

ceph: fix oops due to invalid pointer for kfree() in parse_longname()

This fixes a kernel oops when reading ceph snapshot directories (.snap),

for example by simply running `ls /mnt/my_ceph/.snap`.

The variable str is guarded by __free(kfree), but advanced by one for

skipping the initial '_' in snapshot names. Thus, kfree() is called

with an invalid pointer. This patch removes the need for advancing the

pointer so kfree() is called with correct memory pointer.

Steps to reproduce:

1. Create snapshots on a cephfs volume (I've 63 snaps in my testcase)

2. Add cephfs mount to fstab

$ echo "samba-fileserver@.files=/volumes/datapool/stuff/3461082b-ecc9-4e82-8549-3fd2590d3fb6 /mnt/test/stuff ceph acl,noatime,_netdev 0 0" >> /etc/fstab

3. Reboot the system

$ systemctl reboot

4. Check if it's really mounted

$ mount | grep stuff

5. List snapshots (expected 63 snapshots on my system)

$ ls /mnt/test/stuff/.snap

Now ls hangs forever and the kernel log shows the oops.

Affected products

Linux

Linux

< 8c9af7339de419819cfc641d551675d38ff99abf - AFFECTED

< e258ed369c9e04caa7d2fd49785d753ae4034cb6 - AFFECTED

< bc8dedae022ce3058659c3addef3ec4b41d15e00 - AFFECTED

3145b2b11492d61c512bbc59660bb823bc757f48 - AFFECTED

493479af8af3ab907f49e99323777d498a4fbd2b - AFFECTED

Linux

6.17 - AFFECTED

< 6.17 - UNAFFECTED

<= 6.12.* - UNAFFECTED

<= 6.18.* - UNAFFECTED

<= * - UNAFFECTED

References

GitHub Security Advisories

GHSA-3mg9-9f72-h562

In the Linux kernel, the following vulnerability has been resolved: ceph: fix oops due to...

https://github.com/advisories/GHSA-3mg9-9f72-h562

In the Linux kernel, the following vulnerability has been resolved:

ceph: fix oops due to invalid pointer for kfree() in parse_longname()

This fixes a kernel oops when reading ceph snapshot directories (.snap), for example by simply running ls /mnt/my_ceph/.snap.

The variable str is guarded by _free(kfree), but advanced by one for skipping the initial '' in snapshot names. Thus, kfree() is called with an invalid pointer. This patch removes the need for advancing the pointer so kfree() is called with correct memory pointer.

Steps to reproduce:

  1. Create snapshots on a cephfs volume (I've 63 snaps in my testcase)

  2. Add cephfs mount to fstab $ echo "samba-fileserver@.files=/volumes/datapool/stuff/3461082b-ecc9-4e82-8549-3fd2590d3fb6 /mnt/test/stuff ceph acl,noatime,_netdev 0 0" >> /etc/fstab

  3. Reboot the system $ systemctl reboot

  4. Check if it's really mounted $ mount | grep stuff

  5. List snapshots (expected 63 snapshots on my system) $ ls /mnt/test/stuff/.snap

Now ls hangs forever and the kernel log shows the oops.

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-23201
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-23201",
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "dateUpdated": "2026-02-14T16:27:25.693Z",
    "dateReserved": "2026-01-13T15:37:45.986Z",
    "datePublished": "2026-02-14T16:27:25.693Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux",
        "dateUpdated": "2026-02-14T16:27:25.693Z"
      },
      "title": "ceph: fix oops due to invalid pointer for kfree() in parse_longname()",
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nceph: fix oops due to invalid pointer for kfree() in parse_longname()\n\nThis fixes a kernel oops when reading ceph snapshot directories (.snap),\nfor example by simply running `ls /mnt/my_ceph/.snap`.\n\nThe variable str is guarded by __free(kfree), but advanced by one for\nskipping the initial '_' in snapshot names. Thus, kfree() is called\nwith an invalid pointer.  This patch removes the need for advancing the\npointer so kfree() is called with correct memory pointer.\n\nSteps to reproduce:\n\n1. Create snapshots on a cephfs volume (I've 63 snaps in my testcase)\n\n2. Add cephfs mount to fstab\n$ echo \"samba-fileserver@.files=/volumes/datapool/stuff/3461082b-ecc9-4e82-8549-3fd2590d3fb6      /mnt/test/stuff   ceph     acl,noatime,_netdev    0       0\" >> /etc/fstab\n\n3. Reboot the system\n$ systemctl reboot\n\n4. Check if it's really mounted\n$ mount | grep stuff\n\n5. List snapshots (expected 63 snapshots on my system)\n$ ls /mnt/test/stuff/.snap\n\nNow ls hangs forever and the kernel log shows the oops."
        }
      ],
      "affected": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "programFiles": [
            "fs/ceph/crypto.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "bb80f7618832d26f7e395f52f82b1dac76223e5f",
              "status": "affected",
              "versionType": "git",
              "lessThan": "8c9af7339de419819cfc641d551675d38ff99abf"
            },
            {
              "version": "101841c38346f4ca41dc1802c867da990ffb32eb",
              "status": "affected",
              "versionType": "git",
              "lessThan": "e258ed369c9e04caa7d2fd49785d753ae4034cb6"
            },
            {
              "version": "101841c38346f4ca41dc1802c867da990ffb32eb",
              "status": "affected",
              "versionType": "git",
              "lessThan": "bc8dedae022ce3058659c3addef3ec4b41d15e00"
            },
            {
              "version": "3145b2b11492d61c512bbc59660bb823bc757f48",
              "status": "affected",
              "versionType": "git"
            },
            {
              "version": "493479af8af3ab907f49e99323777d498a4fbd2b",
              "status": "affected",
              "versionType": "git"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "programFiles": [
            "fs/ceph/crypto.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "defaultStatus": "affected",
          "versions": [
            {
              "version": "6.17",
              "status": "affected"
            },
            {
              "version": "0",
              "status": "unaffected",
              "versionType": "semver",
              "lessThan": "6.17"
            },
            {
              "version": "6.12.70",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "version": "6.18.10",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "version": "6.19",
              "status": "unaffected",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/8c9af7339de419819cfc641d551675d38ff99abf"
        },
        {
          "url": "https://git.kernel.org/stable/c/e258ed369c9e04caa7d2fd49785d753ae4034cb6"
        },
        {
          "url": "https://git.kernel.org/stable/c/bc8dedae022ce3058659c3addef3ec4b41d15e00"
        }
      ]
    }
  }
}