CVE-2026-80723 (GCVE-0-2026-80723)

Vulnerability from cvelistv5 – Published: 2026-08-28 06:53 – Updated: 2026-08-29 06:22
VLAI
Title
of: reserved_mem: prevent OOB when too many dynamic regions are defined
Summary
In the Linux kernel, the following vulnerability has been resolved: of: reserved_mem: prevent OOB when too many dynamic regions are defined On boot, fdt_scan_reserved_mem() saves each dynamically-placed /reserved-memory subnode into a local array of size MAX_RESERVED_REGIONS. If the device tree defines more than MAX_RESERVED_REGIONS dynamically-placed regions, fdt_scan_reserved_mem() writes past the end of the local array. Add a bounds check that logs an error and skips the excess regions, restoring the original behavior.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 9a0fe62f93ede02c27aaca81112af1e59c8c0979 , < 68d27250c9e81ab7764603e346c2b1017cb53adf (git)
Affected: 8a6e02d0c00e7b62e6acb74146878bb91e9e7e31 , < cfa7e2734877330d6c10e0f33953905486c4530c (git)
Affected: 8a6e02d0c00e7b62e6acb74146878bb91e9e7e31 , < de8ccbd6bf4efe7a059e2c483789936009e10f42 (git)
Affected: 8a6e02d0c00e7b62e6acb74146878bb91e9e7e31 , < db3dbdfea1b8f38774419c5c2c14e4b81c48708d (git)
Affected: 6.12.13 , < 6.12.103 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.13
Unaffected: 0 , < 6.13 (semver)
Unaffected: 6.12.103 , ≤ 6.12.* (semver)
Unaffected: 6.18.44 , ≤ 6.18.* (semver)
Unaffected: 7.1.8 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/of/of_reserved_mem.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "68d27250c9e81ab7764603e346c2b1017cb53adf",
              "status": "affected",
              "version": "9a0fe62f93ede02c27aaca81112af1e59c8c0979",
              "versionType": "git"
            },
            {
              "lessThan": "cfa7e2734877330d6c10e0f33953905486c4530c",
              "status": "affected",
              "version": "8a6e02d0c00e7b62e6acb74146878bb91e9e7e31",
              "versionType": "git"
            },
            {
              "lessThan": "de8ccbd6bf4efe7a059e2c483789936009e10f42",
              "status": "affected",
              "version": "8a6e02d0c00e7b62e6acb74146878bb91e9e7e31",
              "versionType": "git"
            },
            {
              "lessThan": "db3dbdfea1b8f38774419c5c2c14e4b81c48708d",
              "status": "affected",
              "version": "8a6e02d0c00e7b62e6acb74146878bb91e9e7e31",
              "versionType": "git"
            },
            {
              "lessThan": "6.12.103",
              "status": "affected",
              "version": "6.12.13",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/of/of_reserved_mem.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.13"
            },
            {
              "lessThan": "6.13",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.103",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.44",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.103",
                  "versionStartIncluding": "6.12.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.44",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.8",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nof: reserved_mem: prevent OOB when too many dynamic regions are defined\n\nOn boot, fdt_scan_reserved_mem() saves each dynamically-placed\n/reserved-memory subnode into a local array of size\nMAX_RESERVED_REGIONS.\n\nIf the device tree defines more than MAX_RESERVED_REGIONS\ndynamically-placed regions, fdt_scan_reserved_mem() writes past the\nend of the local array.\n\nAdd a bounds check that logs an error and skips the excess regions,\nrestoring the original behavior."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.4,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The overflow only runs in __init boot-time fdt_scan_reserved_mem() while parsing /reserved-memory from the bootloader-provided DTB; there is no post-boot syscall, ioctl, netlink, or network-stack path to this code on OF/DT platforms (arm/arm64/RISC-V/ppc/mips/etc.).\nAC:L - An attacker who can supply a device tree simply defines more than MAX_RESERVED_REGIONS (64) dynamically-placed /reserved-memory subnodes (size without reg); each extra node deterministically performs another unchecked write past dynamic_nodes[] without races or layout luck.\nPR:N - Triggering requires only a crafted device tree delivered at boot (e.g., compromised firmware/OTA image, supply-chain DTB, unauthenticated PXE/TFTP netboot), not privileges on the victim OS; unprivileged local users and user-namespace capabilities cannot reach this __init-only path.\nUI:N - Once a malicious DTB is installed, the stack overflow occurs automatically during early_init_fdt_scan_reserved_mem() before userspace starts; no cooperative action by another user or administrator is required beyond normal boot.\nS:U - Impact is confined to early-boot kernel stack/memory corruption within the same host kernel; this is not a VM escape, guest-to-host breakout, IOMMU boundary bypass, or other cross-security-authority scenario.\nC:H - Each OOB store writes an attacker-influenced FDT node offset past dynamic_nodes[MAX_RESERVED_REGIONS] onto the kernel stack, corrupting adjacent locals and potentially frame/link registers; per kernel guidance, stack OOB writes enable high confidentiality impact.\nI:H - This is a stack buffer overflow (CWE-121/787) during __init: repeated int writes past the 64-element dynamic_nodes[] array can corrupt return addresses and control flow in early boot before full hardening, enabling arbitrary kernel code execution.\nA:H - Unchecked OOB writes into the boot-time stack typically cause immediate kernel panic/oops during fdt_scan_reserved_mem() (corrupted count/fdt pointers or trashed frame), denying availability on every boot with a crafted or over-limit DT."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-29T06:22:40.126Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/68d27250c9e81ab7764603e346c2b1017cb53adf"
        },
        {
          "url": "https://git.kernel.org/stable/c/cfa7e2734877330d6c10e0f33953905486c4530c"
        },
        {
          "url": "https://git.kernel.org/stable/c/de8ccbd6bf4efe7a059e2c483789936009e10f42"
        },
        {
          "url": "https://git.kernel.org/stable/c/db3dbdfea1b8f38774419c5c2c14e4b81c48708d"
        }
      ],
      "title": "of: reserved_mem: prevent OOB when too many dynamic regions are defined",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-80723",
    "datePublished": "2026-08-28T06:53:18.485Z",
    "dateReserved": "2026-08-26T14:34:25.788Z",
    "dateUpdated": "2026-08-29T06:22:40.126Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-80723",
      "date": "2026-09-21",
      "epss": "0.00134",
      "percentile": "0.03258"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/of/of_reserved_mem.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "68d27250c9e81ab7764603e346c2b1017cb53adf",
                    "status": "affected",
                    "version": "9a0fe62f93ede02c27aaca81112af1e59c8c0979",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "cfa7e2734877330d6c10e0f33953905486c4530c",
                    "status": "affected",
                    "version": "8a6e02d0c00e7b62e6acb74146878bb91e9e7e31",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "de8ccbd6bf4efe7a059e2c483789936009e10f42",
                    "status": "affected",
                    "version": "8a6e02d0c00e7b62e6acb74146878bb91e9e7e31",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "db3dbdfea1b8f38774419c5c2c14e4b81c48708d",
                    "status": "affected",
                    "version": "8a6e02d0c00e7b62e6acb74146878bb91e9e7e31",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6.12.103",
                    "status": "affected",
                    "version": "6.12.13",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/of/of_reserved_mem.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.13"
                  },
                  {
                    "lessThan": "6.13",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.103",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.44",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.8",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nof: reserved_mem: prevent OOB when too many dynamic regions are defined\n\nOn boot, fdt_scan_reserved_mem() saves each dynamically-placed\n/reserved-memory subnode into a local array of size\nMAX_RESERVED_REGIONS.\n\nIf the device tree defines more than MAX_RESERVED_REGIONS\ndynamically-placed regions, fdt_scan_reserved_mem() writes past the\nend of the local array.\n\nAdd a bounds check that logs an error and skips the excess regions,\nrestoring the original behavior."
          }
        ],
        "id": "CVE-2026-80723",
        "lastModified": "2026-08-29T07:16:54.343",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 8.4,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.5,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-28T08:16:58.113",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/68d27250c9e81ab7764603e346c2b1017cb53adf"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/cfa7e2734877330d6c10e0f33953905486c4530c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/db3dbdfea1b8f38774419c5c2c14e4b81c48708d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/de8ccbd6bf4efe7a059e2c483789936009e10f42"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-31T11:40:58+00:00",
      "cve": "CVE-2026-80723",
      "id": "CVE-2026-80723",
      "initial_release_date": "2026-08-28T00:00:00+00:00",
      "product_status:known_affected": "76",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: of: reserved_mem: prevent OOB when too many dynamic regions are defined",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-80723.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-01T17:12:28Z",
      "cve": "CVE-2026-80723",
      "id": "CVE-2026-80723",
      "initial_release_date": "2026-08-28T16:33:02Z",
      "product_status:known_not_affected": "353",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-80723",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-80723.json",
      "version": "4"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…