{
  "affected": [
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:12",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:13",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:14",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "In the Linux kernel, the following vulnerability has been resolved:  libnvdimm/labels: Prevent integer overflow in __nd_label_validate()  The on-media namespace index field nslot is a u32 read from the DIMM label storage area.  __nd_label_validate() bounds it against the config area size, but sizeof_namespace_label() returns unsigned, so the product nslot * label_size is evaluated in 32-bit and wraps modulo 2^32 before the comparison.  A crafted nslot passes the bound and is then used as the loop trip count in nd_label_data_init(), whose memset() walks off the end of the config_size buffer: an out-of-bounds write.  The field is not trusted -- it comes from the medium, or from userspace via ND_CMD_SET_CONFIG_DATA.  Evaluate the product in 64-bit so the bound check is exact; conforming labels are unaffected.  The check was safe when introduced by commit 4a826c83db4e (\"libnvdimm: namespace indices: read and validate\"): it multiplied by sizeof(struct nd_namespace_label), a size_t, so on a 64-bit build the product did not wrap.  Commit 564e871aa66f (\"libnvdimm, label: add v1.2 nvdimm label definitions\") narrowed it to 32 bits when the label size became a runtime value read via sizeof_namespace_label().",
  "id": "DEBIAN-CVE-2026-89559",
  "modified": "2026-09-15T08:47:41.796489058Z",
  "published": "2026-09-11T20:19:39.673Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security-tracker.debian.org/tracker/CVE-2026-89559"
    }
  ],
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ],
  "upstream": [
    "CVE-2026-89559"
  ]
}