{"id":29175,"date":"2026-09-25T20:32:03","date_gmt":"2026-09-25T12:32:03","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98020"},"modified":"2026-09-25T20:32:03","modified_gmt":"2026-09-25T12:32:03","slug":"cve-2026-98020","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98020","title":{"rendered":"CVE-2026-98020 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\npds_core: fix cmd_reg"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>pds_core: fix cmd_regs access racing BAR unmap on reset<\/p>\n<p>pdsc_reset_prepare() and pdsc_reset_done()&#8217;s pdsc_map_bars() error path<br \/>\nclear\/iounmap cmd_regs without devcmd_lock, and<br \/>\npdsc_legacy_firmware_update()&#8217;s download loop derefs cmd_regs after<br \/>\ndropping and retaking the lock without re-checking. An FLR concurrent<br \/>\nwith a devlink flash can unmap cmd_regs under an in-flight devcmd,<br \/>\ncausing a NULL deref or a write to unmapped MMIO.<\/p>\n<p>Take devcmd_lock across the BAR unmap\/remap, and re-check cmd_regs in<br \/>\nthe download loop. Only the PF maps cmd_regs and runs devcmd, so skip<br \/>\nthe unmap on a VF, as pdsc_remove() and pdsc_reset_done() already do.<\/p>\n<p>A reset that completes entirely within the unlocked window is not a<br \/>\ncorrectness problem for the image: the device clears its update session,<br \/>\nso a resumed download is rejected, and it verifies the staged image<br \/>\nbefore writing a flash slot, reporting PDS_RC_BAD_FW rather than<br \/>\nactivating it.<\/p>\n<p>pdsc_unmap_bars() also clears info_regs, intr_status and intr_ctrl. The<br \/>\ninterrupt and start\/stop readers of those are quiesced before the unmap<br \/>\nby pdsc_fw_down(), which frees the interrupts and tears down the queues.<br \/>\nThe debugfs readers are not, since those files outlive a reset; that is<br \/>\npre-existing and out of scope here.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>pds_core: fix cmd_regs access racing BAR unmap on reset<\/p>\n<p>pdsc_reset_prepare() and pdsc_reset_done()&#8217;s pdsc_map_bars() error path<br \/>\ncl<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29175","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29175","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=29175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}