CVE-2026-89497 (GCVE-0-2026-89497)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Summary
In the Linux kernel, the following vulnerability has been resolved: orangefs: skip leading spaces before parsing client debug masks orangefs_prepare_cdm_array() sizes each client debug keyword buffer with strcspn(cds_head, " "), but then parses the keyword with %s. The %s conversion skips leading whitespace, while strcspn() does not. If a client debug entry starts with a space, the allocation can be sized for an empty keyword while sscanf() copies the following non-empty token. This can write past the end of the allocated keyword buffer. Skip leading spaces before computing the keyword length so the allocation matches the string parsed by sscanf().
Impacted products
Vendor Product Version
Linux Linux Version: f7be4ee07fb72a516563bc2870ef41fa589a964a
Version: f7be4ee07fb72a516563bc2870ef41fa589a964a
Version: f7be4ee07fb72a516563bc2870ef41fa589a964a
Version: f7be4ee07fb72a516563bc2870ef41fa589a964a
Version: f7be4ee07fb72a516563bc2870ef41fa589a964a
Version: f7be4ee07fb72a516563bc2870ef41fa589a964a
Version: f7be4ee07fb72a516563bc2870ef41fa589a964a
Version: f7be4ee07fb72a516563bc2870ef41fa589a964a
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/orangefs/orangefs-debugfs.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "173bfd69696815bcf1c052f61cb69c26cca4e443",
              "status": "affected",
              "version": "f7be4ee07fb72a516563bc2870ef41fa589a964a",
              "versionType": "git"
            },
            {
              "lessThan": "995f4d05589f87452a56672270af28918c8939c3",
              "status": "affected",
              "version": "f7be4ee07fb72a516563bc2870ef41fa589a964a",
              "versionType": "git"
            },
            {
              "lessThan": "0ef38d53bca5ea1375fea0d3d11e9727df064b85",
              "status": "affected",
              "version": "f7be4ee07fb72a516563bc2870ef41fa589a964a",
              "versionType": "git"
            },
            {
              "lessThan": "ce748ae1181d0daf5dd0d2d906d5c1cc328c153b",
              "status": "affected",
              "version": "f7be4ee07fb72a516563bc2870ef41fa589a964a",
              "versionType": "git"
            },
            {
              "lessThan": "15d79c806231e62a7b746d3b42626810004e1b27",
              "status": "affected",
              "version": "f7be4ee07fb72a516563bc2870ef41fa589a964a",
              "versionType": "git"
            },
            {
              "lessThan": "116d14f29a0524853c9316f32a2ac06cff5d4bf6",
              "status": "affected",
              "version": "f7be4ee07fb72a516563bc2870ef41fa589a964a",
              "versionType": "git"
            },
            {
              "lessThan": "1774c5b3713add32fe15ab0d3db4b73355f94e35",
              "status": "affected",
              "version": "f7be4ee07fb72a516563bc2870ef41fa589a964a",
              "versionType": "git"
            },
            {
              "lessThan": "d410cd5303ec59c7cf23dd61423752ce8e9ecb59",
              "status": "affected",
              "version": "f7be4ee07fb72a516563bc2870ef41fa589a964a",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/orangefs/orangefs-debugfs.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.6"
            },
            {
              "lessThan": "4.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.270",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.109",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.50",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.270",
                  "versionStartIncluding": "4.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.221",
                  "versionStartIncluding": "4.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.188",
                  "versionStartIncluding": "4.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "4.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.109",
                  "versionStartIncluding": "4.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.50",
                  "versionStartIncluding": "4.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.4",
                  "versionStartIncluding": "4.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "4.6",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\norangefs: skip leading spaces before parsing client debug masks\n\norangefs_prepare_cdm_array() sizes each client debug keyword buffer\nwith strcspn(cds_head, \" \"), but then parses the keyword with %s. The\n%s conversion skips leading whitespace, while strcspn() does not.\n\nIf a client debug entry starts with a space, the allocation can be sized\nfor an empty keyword while sscanf() copies the following non-empty token.\nThis can write past the end of the allocated keyword buffer.\n\nSkip leading spaces before computing the keyword length so the allocation\nmatches the string parsed by sscanf()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The overflow is reached only via ioctl(ORANGEFS_DEV_CLIENT_STRING) on /dev/pvfs2-req after orangefs_devreq_open(); orangefs_debugfs_new_client_string() copy_from_user()s the client debug-mask table from that local fd into orangefs_prepare_cdm_array(). Unlike readdir trailers, this string is not supplied by an OrangeFS server over the network.\nAC:L - A single CLIENT_STRING ioctl whose first newline-delimited entry begins with spaces then a long non-whitespace token deterministically makes strcspn() return 0 while sscanf(\"%s\") copies that token; the attacker fully controls the 2048-byte buffer and needs no race, heap layout, or other state outside their control.\nPR:L - orangefs_devreq_open() checks only init_user_ns, O_NONBLOCK, and exclusive open\u2014no capability. The kernel documents mknod /dev/pvfs2-req, which is typically world-readable, and ioctl works on O_RDONLY, so an unprivileged local user can open the node when client-core is not holding it; user namespaces cannot open it, but init-ns DAC is enough.\nUI:N - The attacker opens /dev/pvfs2-req and issues the crafted CLIENT_STRING ioctl themselves. No victim must mount OrangeFS, start pvfs2-client-core, or otherwise interact; an already-loaded module and device node are deployment state, not user interaction.\nS:U - The heap overflow and any resulting kernel memory corruption or oops occur in the same kernel that services the ioctl. This is a standard local kernel compromise, not a VM/IOMMU/sandbox boundary crossing.\nC:H - sscanf(\"%s\") with no field width copies an attacker-chosen token (up to the 2048-byte ioctl buffer) into a kzalloc(1) keyword, a large heap overflow that can overwrite adjacent slab objects and pointers, yielding an arbitrary read primitive per CNA memory-corruption guidance.\nI:H - The same unbounded out-of-bounds write smashes heap metadata and neighboring objects with attacker-controlled bytes, which is sufficient for arbitrary write and control-flow hijack; CNA guidance rates heap buffer overflows High for integrity.\nA:H - Overflowing a 1-byte slab allocation by up to ~2KB of attacker data reliably corrupts the heap and can oops/panic the kernel even without a full exploit, so availability impact is High."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T08:47:48.916Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/173bfd69696815bcf1c052f61cb69c26cca4e443"
        },
        {
          "url": "https://git.kernel.org/stable/c/995f4d05589f87452a56672270af28918c8939c3"
        },
        {
          "url": "https://git.kernel.org/stable/c/0ef38d53bca5ea1375fea0d3d11e9727df064b85"
        },
        {
          "url": "https://git.kernel.org/stable/c/ce748ae1181d0daf5dd0d2d906d5c1cc328c153b"
        },
        {
          "url": "https://git.kernel.org/stable/c/15d79c806231e62a7b746d3b42626810004e1b27"
        },
        {
          "url": "https://git.kernel.org/stable/c/116d14f29a0524853c9316f32a2ac06cff5d4bf6"
        },
        {
          "url": "https://git.kernel.org/stable/c/1774c5b3713add32fe15ab0d3db4b73355f94e35"
        },
        {
          "url": "https://git.kernel.org/stable/c/d410cd5303ec59c7cf23dd61423752ce8e9ecb59"
        }
      ],
      "title": "orangefs: skip leading spaces before parsing client debug masks",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-89497",
    "datePublished": "2026-09-11T19:43:47.439Z",
    "dateReserved": "2026-09-11T19:38:34.714Z",
    "dateUpdated": "2026-10-19T08:47:48.916Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…