{"id":25596,"date":"2026-09-18T04:31:36","date_gmt":"2026-09-17T20:31:36","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90187"},"modified":"2026-09-18T04:31:36","modified_gmt":"2026-09-17T20:31:36","slug":"cve-2026-90187","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90187","title":{"rendered":"CVE-2026-90187 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnull_blk: free zones"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>null_blk: free zones array on device power-off<\/p>\n<p>null_init_zoned_dev() allocates dev-&gt;zones when a zoned device is powered<br \/>\non, but null_del_dev() never frees it on power-off; dev-&gt;zones is only<br \/>\nfreed later in null_free_dev(), when the configfs directory is removed. If<br \/>\nthe device is powered off and then on again, null_init_zoned_dev()<br \/>\nallocates a new array and overwrites the dev-&gt;zones pointer, leaking the<br \/>\nprevious allocation each power cycle.<\/p>\n<p>Free dev-&gt;zones in null_del_dev() via null_free_zoned_dev() to solve it.<br \/>\nAnd calling null_free_zoned_dev() in null_free_dev() is no longer necessary<br \/>\nbecause every caller already invokes null_del_dev() first: via<br \/>\nnullb_group_drop_item() before nullb_device_release(), in the<br \/>\nnull_add_dev() error path of null_create_dev(), and in null_destroy_dev().<br \/>\nRemove the redundant call.<\/p>\n<p>And take &amp;lock around zone_cond_store() in the two store wrappers to<br \/>\nserialize dev-&gt;zones check-and-deref against its alloc\/free, which already<br \/>\nrun under &amp;lock. The reason there was no problem before is that only<br \/>\nnullb_device_release() or null_exit() frees the dev-&gt;zones, which<br \/>\nguarantees that subsequent users won&#8217;t access the configfs interface.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>null_blk: free zones array on device power-off<\/p>\n<p>null_init_zoned_dev() allocates dev-&gt;zones when a zoned device is powered<br \/>\non, but n<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25596","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25596","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=25596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}