{"id":24483,"date":"2026-09-16T20:32:22","date_gmt":"2026-09-16T12:32:22","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89796"},"modified":"2026-09-16T20:32:22","modified_gmt":"2026-09-16T12:32:22","slug":"cve-2026-89796","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89796","title":{"rendered":"CVE-2026-89796 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nmm\/damon\/core: avoid"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>mm\/damon\/core: avoid infinite kdamond_merge_regions() internal loop<\/p>\n<p>Patch series &#8220;mm\/damon: unurgent fixes for infinite loop, NULL de-ref and<br \/>\nraces&#8221;, v1.1.<\/p>\n<p>Sashiko found a few issues in DAMON that could cause infinite loop, NULL<br \/>\ndereference and monitoring results degradation.  The first two sounds<br \/>\nscary but the infinite loop happens only under unreasonable user setup.<br \/>\nThe NULL dereference is only in a unit test.  Monitoring results<br \/>\ndegradation is trivial since it is only best-effort, and those happens<br \/>\nfrom only unlikely races.  Still those are bugs that better to fix if<br \/>\npossible.  Fix those.<\/p>\n<p>This patch (of 6):<\/p>\n<p>Due to online parameter update like events, the number of DAMON regions<br \/>\ncould be higher than the user-set upper limit.  kdamond_merge_regions()<br \/>\nrepeats merge regions until the number meets the limit, while doubling the<br \/>\nmerge threshold up to the theoretical maximum threshold.  It is tried only<br \/>\nup to the theoretical maximum threshold because even the aggressive<br \/>\nmerging can fail from reducing the number of regions under the<br \/>\nuser-defined upper limit.  For example, there could be many user-defined<br \/>\nnon-contiguous regions that cannot be merged.<\/p>\n<p>The threshold based loop break condition is evaluated by comparing the<br \/>\nthreshold for the next merging try against the theoretical maximum<br \/>\nthreshold.  If max_thres is larger than UINT_MAX \/ 2, doubling the<br \/>\nthreshold could make it overflow, and bypass the loop break condition.  In<br \/>\nthe case, if the number of regions cannot be reduced under the upper limit<br \/>\nlike explained above, the loop will run infinitely.<\/p>\n<p>Prevent the case by doing the break condition check before doubling the<br \/>\nthreshold.  Also, prevent the threshold exceeding the maximum threshold,<br \/>\nas it could overflow and apply the wrong merge threshold.<\/p>\n<p>This issue is unlikely to occur in real world, since having the max_thres<br \/>\nhigher than UINT_MAX \/ 2 require unrealistically large aggregation<br \/>\nintervals compared to the sampling interval.  Also, it requires an<br \/>\nunrealistically large number of uncontiguous regions setup.  Nonetheless,<br \/>\nthe consequence is bad and the fix is simple.<\/p>\n<p>The issue was discovered [1] by Sashiko.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>mm\/damon\/core: avoid infinite kdamond_merge_regions() internal loop<\/p>\n<p>Patch series &#8220;mm\/damon: unurgent fixes for infinite loop, NULL<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24483","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24483","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=24483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}