{"id":21481,"date":"2026-09-12T04:31:14","date_gmt":"2026-09-11T20:31:14","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89559"},"modified":"2026-09-12T04:31:14","modified_gmt":"2026-09-11T20:31:14","slug":"cve-2026-89559","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89559","title":{"rendered":"CVE-2026-89559 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nlibnvdimm\/labels: Pre"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>libnvdimm\/labels: Prevent integer overflow in __nd_label_validate()<\/p>\n<p>The on-media namespace index field nslot is a u32 read from the DIMM<br \/>\nlabel storage area.  __nd_label_validate() bounds it against the config<br \/>\narea size, but sizeof_namespace_label() returns unsigned, so the product<br \/>\nnslot * label_size is evaluated in 32-bit and wraps modulo 2^32 before<br \/>\nthe comparison.  A crafted nslot passes the bound and is then used as the<br \/>\nloop trip count in nd_label_data_init(), whose memset() walks off the end<br \/>\nof the config_size buffer: an out-of-bounds write.<\/p>\n<p>The field is not trusted &#8212; it comes from the medium, or from userspace<br \/>\nvia ND_CMD_SET_CONFIG_DATA.  Evaluate the product in 64-bit so the bound<br \/>\ncheck is exact; conforming labels are unaffected.<\/p>\n<p>The check was safe when introduced by commit 4a826c83db4e (&#8220;libnvdimm:<br \/>\nnamespace indices: read and validate&#8221;): it multiplied by sizeof(struct<br \/>\nnd_namespace_label), a size_t, so on a 64-bit build the product did not<br \/>\nwrap.  Commit 564e871aa66f (&#8220;libnvdimm, label: add v1.2 nvdimm label<br \/>\ndefinitions&#8221;) narrowed it to 32 bits when the label size became a runtime<br \/>\nvalue read via sizeof_namespace_label().<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>libnvdimm\/labels: Prevent integer overflow in __nd_label_validate()<\/p>\n<p>The on-media namespace index field nslot is a u32 read from th<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21481","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}