Skip to content
Heist/ feed
High

ceph: cap delegated inode count in ceph_parse_deleg_inos()

Type: advisorySource: Official CVE List1 source record

In the Linux kernel, the following vulnerability has been resolved: ceph: cap delegated inode count in ceph_parse_deleg_inos() ceph_parse_deleg_inos() decodes interval sets of delegated inode numbers from an MDS create-with-delegation reply. For each set it reads a 64-bit start and a 64-bit len with ceph_decode_64_safe(), which only validates that the eight bytes are present in the message, not the value, and then loops over len while inserting entries into s_delegated_inos. len is fully attacker controlled. A malicious or compromised MDS can send one huge interval, many intervals in one reply, duplicate intervals, or repeated replies that accumulate delegated inodes on the same session. The original code bounded none of these and could spin the insert loop or grow the xarray without limit. Bound both dimensions with a single enforcement point. Track the number of delegated inodes held by each MDS session in an atomic counter and grow it only in ceph_insert_deleg_ino(), which uses atomic_add_unless() to refuse to push the count past CEPH_MAX_DELEG_INOS. Because that helper is the only place the counter grows, the per-session population can never exceed the cap, so no separate per-session pre-check is needed. The counter is decremented when async create consumes a delegated inode or when an insert fails, incremented when a delegated inode is restored, initialized with the session xarray, and reset when reconnect destroys the xarray. A per-session cap alone still lets one reply

Announced Source revision 1
Original source ↗

CVE-2026-89648

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-2026-89648

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": "d4846487870897a5a149a3220c95bfd5728f9247",
        "lessThan": "8194d8e61ef0b49baddf660c7e88fc1c563a5e55",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "d4846487870897a5a149a3220c95bfd5728f9247",
        "lessThan": "7fc55e8e6b6b50f217b1728415578704baf4d0a2",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "d4846487870897a5a149a3220c95bfd5728f9247",
        "lessThan": "c040e139f1a629b767f900bbbc3f9892c290ed85",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "d4846487870897a5a149a3220c95bfd5728f9247",
        "lessThan": "f341270ac5f5077804d7837ce77b0f0df1cea29d",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "d4846487870897a5a149a3220c95bfd5728f9247",
        "lessThan": "4bd3158bd62466d57ed72a3f7bc5f205fedd6919",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "fs/ceph/mds_client.c",
      "fs/ceph/mds_client.h",
      "fs/ceph/super.h"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "5.7"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "5.7",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "6.6.160",
        "versionType": "semver",
        "lessThanOrEqual": "6.6.*"
      },
      {
        "status": "unaffected",
        "version": "6.12.114",
        "versionType": "semver",
        "lessThanOrEqual": "6.12.*"
      },
      {
        "status": "unaffected",
        "version": "6.18.51",
        "versionType": "semver",
        "lessThanOrEqual": "6.18.*"
      },
      {
        "status": "unaffected",
        "version": "7.2.4",
        "versionType": "semver",
        "lessThanOrEqual": "7.2.*"
      },
      {
        "status": "unaffected",
        "version": "7.3",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "fs/ceph/mds_client.c",
      "fs/ceph/mds_client.h",
      "fs/ceph/super.h"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2026-89648

Source reference: /cveMetadata/cveId

Publisher severity

high

Source reference: /containers/cna/metrics

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