CVE-2026-90004 (GCVE-0-2026-90004)
Vulnerability from cvelistv5
Published
2026-09-16 10:33
Modified
2026-10-19 08:56
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: mm/damon/core: handle region split failure in apply_min_nr_regions() damon_apply_min_nr_regions() repeatedly split each region until its size becomes small enough to meet the user-defined low limit of the number of regions. The loop assumes the split operation (damon_split_region_at()) will always succeed and create the new region. But the operation could silently fail for memory allocation failures, for example. If such failure happens and the region was the last region, the linked list-based next region fetching returns invalid pointer. As a result, invalid memory dereference and corruption could happen. Even if the corner case is handled, it imposes stress to the allocator by trying split regions for other targets. Fix the issue by breaking all the loops for any region split failure. This means there could be a min_nr_regions violation. It will only rarely happen since the allocation is arguably too small to fail. Even if it happens, it is only temporal. damon_apply_min_nr_regions() will be called again after the aggregation interval. The user impact of the issue should be minor, since the allocation is arguably too small to fail. But, it could still theoretically happen, and the consequence is very bad. This issue was discovered [1] by Sashiko.
Impacted products
Vendor Product Version
Linux Linux Version: b1029f29eb1d5fbf07fa8db9b5e7ab6d9813ad67
Version: b1029f29eb1d5fbf07fa8db9b5e7ab6d9813ad67
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "mm/damon/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "463ebd63e8ee3d73022a18915ea43320dad8aad7",
              "status": "affected",
              "version": "b1029f29eb1d5fbf07fa8db9b5e7ab6d9813ad67",
              "versionType": "git"
            },
            {
              "lessThan": "c608748607620f331196ed0ba9fe4017892c1457",
              "status": "affected",
              "version": "b1029f29eb1d5fbf07fa8db9b5e7ab6d9813ad67",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "mm/damon/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "7.1"
            },
            {
              "lessThan": "7.1",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.5",
              "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": "7.2.5",
                  "versionStartIncluding": "7.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "7.1",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/damon/core: handle region split failure in apply_min_nr_regions()\n\ndamon_apply_min_nr_regions() repeatedly split each region until its size\nbecomes small enough to meet the user-defined low limit of the number of\nregions.  The loop assumes the split operation (damon_split_region_at())\nwill always succeed and create the new region.  But the operation could\nsilently fail for memory allocation failures, for example.\n\nIf such failure happens and the region was the last region, the linked\nlist-based next region fetching returns invalid pointer.  As a result,\ninvalid memory dereference and corruption could happen.  Even if the\ncorner case is handled, it imposes stress to the allocator by trying split\nregions for other targets.  Fix the issue by breaking all the loops for\nany region split failure.\n\nThis means there could be a min_nr_regions violation.  It will only rarely\nhappen since the allocation is arguably too small to fail.  Even if it\nhappens, it is only temporal.  damon_apply_min_nr_regions() will be called\nagain after the aggregation interval.\n\nThe user impact of the issue should be minor, since the allocation is\narguably too small to fail.  But, it could still theoretically happen, and\nthe consequence is very bad.\n\nThis issue was discovered [1] by Sashiko."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T08:56:18.224Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/463ebd63e8ee3d73022a18915ea43320dad8aad7"
        },
        {
          "url": "https://git.kernel.org/stable/c/c608748607620f331196ed0ba9fe4017892c1457"
        }
      ],
      "title": "mm/damon/core: handle region split failure in apply_min_nr_regions()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-90004",
    "datePublished": "2026-09-16T10:33:14.085Z",
    "dateReserved": "2026-09-11T19:38:34.780Z",
    "dateUpdated": "2026-10-19T08:56:18.224Z",
    "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…