{"id":25509,"date":"2026-09-18T04:31:29","date_gmt":"2026-09-17T20:31:29","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90100"},"modified":"2026-09-18T04:31:29","modified_gmt":"2026-09-17T20:31:29","slug":"cve-2026-90100","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90100","title":{"rendered":"CVE-2026-90100 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nptp: netc: fix period"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ptp: netc: fix period truncation and potential divide-by-zero in PEROUT<\/p>\n<p>The max_period bound in net_timer_enable_perout() was computed as:<\/p>\n<p>  max_period = (u64)NETC_TMR_DEFAULT_FIPER + integral_period;<\/p>\n<p>which exceeds U32_MAX when integral_period &gt; 0 (e.g. 0x100000002 for<br \/>\nthe default 333333333 Hz clock). A period_ns that passes this check but<br \/>\nexceeds U32_MAX is then silently truncated when stored into the u32<br \/>\nstruct netc_pp::period field.<\/p>\n<p>A truncated value of zero can reach netc_timer_set_perout_alarm(), where<br \/>\nthe local u32 period variable would also be 0, causing a divide-by-zero<br \/>\nin roundup_u64(delta, period) whenever the stime period &#8211; integral_period;<\/p>\n<p>A zero pp-&gt;period results in an unsigned wraparound to 0xFFFFFFFD,<br \/>\nmis-programming the FIPER hardware register.<\/p>\n<p>Fix all three issues by capping max_period at NETC_TMR_DEFAULT_FIPER<br \/>\n(0xFFFFFFFF). This ensures that any period_ns passing the range check<br \/>\nfits in a u32 without truncation, so the stored value is always valid<br \/>\nand non-zero. The accepted range is reduced by integral_period ns<br \/>\n(typically only a few nanoseconds), which is negligible in practice.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ptp: netc: fix period truncation and potential divide-by-zero in PEROUT<\/p>\n<p>The max_period bound in net_timer_enable_perout() was comp<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25509","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25509","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=25509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}