CVE-2026-98237 (GCVE-0-2026-98237)
Vulnerability from cvelistv5
Published
2026-10-06 08:45
Modified
2026-10-19 09:16
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: net: wwan: mhi_wwan_mbim: guard against a cyclic NDP chain The NDP traversal in mhi_mbim_rx() only stops when wNextNdpIndex is zero. Nothing requires the offsets to advance, so a modem that points an NDP at itself, or at an earlier NDP, keeps the loop spinning forever on one CPU. Break out when the next NDP offset is not larger than the current one. Verified in a QEMU guest with a fault injector feeding the driver's receive callback an NTB whose single NDP points at itself: the unpatched driver spins in mhi_mbim_rx() with one CPU pinned at 100% and the thread never returns. With this check the loop terminates within one iteration. Changes in v2: move the non-increasing check to the wNextNdpIndex retrieval site, as suggested by Loic Poulain, instead of tracking the previous offset in a separate variable.
Impacted products
Vendor Product Version
Linux Linux Version: aa730a9905b7b079ef2fffdab7f15dbb842f5c7c
Version: aa730a9905b7b079ef2fffdab7f15dbb842f5c7c
Version: aa730a9905b7b079ef2fffdab7f15dbb842f5c7c
Version: aa730a9905b7b079ef2fffdab7f15dbb842f5c7c
Version: aa730a9905b7b079ef2fffdab7f15dbb842f5c7c
Version: aa730a9905b7b079ef2fffdab7f15dbb842f5c7c
Version: aa730a9905b7b079ef2fffdab7f15dbb842f5c7c
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wwan/mhi_wwan_mbim.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "3ed36ee1b29b028f6bc2ebe100152f61a33df05a",
              "status": "affected",
              "version": "aa730a9905b7b079ef2fffdab7f15dbb842f5c7c",
              "versionType": "git"
            },
            {
              "lessThan": "e4b2c7b50d4f4aa1ddfff731b136d65f65b2b526",
              "status": "affected",
              "version": "aa730a9905b7b079ef2fffdab7f15dbb842f5c7c",
              "versionType": "git"
            },
            {
              "lessThan": "19b5e8dd884a530d04482e1a8e547f43cad17ed7",
              "status": "affected",
              "version": "aa730a9905b7b079ef2fffdab7f15dbb842f5c7c",
              "versionType": "git"
            },
            {
              "lessThan": "24ade82d6d993274e99c2c6998848751c35292e7",
              "status": "affected",
              "version": "aa730a9905b7b079ef2fffdab7f15dbb842f5c7c",
              "versionType": "git"
            },
            {
              "lessThan": "8dad70ff7e25cbcfbcb5101fdbf36d98003eb653",
              "status": "affected",
              "version": "aa730a9905b7b079ef2fffdab7f15dbb842f5c7c",
              "versionType": "git"
            },
            {
              "lessThan": "829fec45122da58d77a55a3b7ca514dafab98e77",
              "status": "affected",
              "version": "aa730a9905b7b079ef2fffdab7f15dbb842f5c7c",
              "versionType": "git"
            },
            {
              "lessThan": "5d063822ac5184939c1ed377a339a01d8ae814e8",
              "status": "affected",
              "version": "aa730a9905b7b079ef2fffdab7f15dbb842f5c7c",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wwan/mhi_wwan_mbim.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.15"
            },
            {
              "lessThan": "5.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.222",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.189",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.158",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.112",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.54",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.8",
              "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.15.222",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.189",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.158",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.112",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.54",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.8",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: wwan: mhi_wwan_mbim: guard against a cyclic NDP chain\n\nThe NDP traversal in mhi_mbim_rx() only stops when wNextNdpIndex is\nzero.  Nothing requires the offsets to advance, so a modem that\npoints an NDP at itself, or at an earlier NDP, keeps the loop\nspinning forever on one CPU.\n\nBreak out when the next NDP offset is not larger than the current\none.\n\n\nVerified in a QEMU guest with a fault injector feeding the driver\u0027s\nreceive callback an NTB whose single NDP points at itself: the\nunpatched driver spins in mhi_mbim_rx() with one CPU pinned at 100%\nand the thread never returns.  With this check the loop terminates\nwithin one iteration.\n\nChanges in v2: move the non-increasing check to the wNextNdpIndex\nretrieval site, as suggested by Loic Poulain, instead of tracking\nthe previous offset in a separate variable."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T09:16:08.988Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/3ed36ee1b29b028f6bc2ebe100152f61a33df05a"
        },
        {
          "url": "https://git.kernel.org/stable/c/e4b2c7b50d4f4aa1ddfff731b136d65f65b2b526"
        },
        {
          "url": "https://git.kernel.org/stable/c/19b5e8dd884a530d04482e1a8e547f43cad17ed7"
        },
        {
          "url": "https://git.kernel.org/stable/c/24ade82d6d993274e99c2c6998848751c35292e7"
        },
        {
          "url": "https://git.kernel.org/stable/c/8dad70ff7e25cbcfbcb5101fdbf36d98003eb653"
        },
        {
          "url": "https://git.kernel.org/stable/c/829fec45122da58d77a55a3b7ca514dafab98e77"
        },
        {
          "url": "https://git.kernel.org/stable/c/5d063822ac5184939c1ed377a339a01d8ae814e8"
        }
      ],
      "title": "net: wwan: mhi_wwan_mbim: guard against a cyclic NDP chain",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98237",
    "datePublished": "2026-10-06T08:45:09.277Z",
    "dateReserved": "2026-09-25T10:25:14.329Z",
    "dateUpdated": "2026-10-19T09:16:08.988Z",
    "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…