{"id":14972,"date":"2026-09-04T19:02:20","date_gmt":"2026-09-04T11:02:20","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-63942"},"modified":"2026-09-04T19:02:20","modified_gmt":"2026-09-04T11:02:20","slug":"cve-2026-63942","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-63942","title":{"rendered":"CVE-2026-63942 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nparport: Fix race bet"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>parport: Fix race between port and client registration<\/p>\n<p>The parport subsystem registers port devices before they are fully<br \/>\ninitialised, resulting in a race condition where client drivers such<br \/>\nas lp can attach to ports that are not completely initialised or even<br \/>\nbeing torn down.<\/p>\n<p>When the port and client drivers are built as modules and loaded<br \/>\naround the same time during boot, this occasionally results in a<br \/>\ncrash.  I was able to make this happen reliably in a VM with a<br \/>\nPC-style parallel port by patching parport_pc to fail probing:<\/p>\n<p>&gt; &#8212; a\/drivers\/parport\/parport_pc.c<br \/>\n&gt; +++ b\/drivers\/parport\/parport_pc.c<br \/>\n&gt; @@ -2069,7 +2069,7 @@ static struct parport *__parport_pc_probe_port(unsigned long int base,<br \/>\n&gt;  \tif (!p)<br \/>\n&gt;  \t\tgoto out3;<br \/>\n&gt;<br \/>\n&gt; &#8211;\tbase_res = request_region(base, 3, p-&gt;name);<br \/>\n&gt; +\tbase_res = NULL;<br \/>\n&gt;  \tif (!base_res)<br \/>\n&gt;  \t\tgoto out4;<br \/>\n&gt;<\/p>\n<p>and then running:<\/p>\n<p>    while true; do<br \/>\n        modprobe lp &amp; modprobe parport_pc<br \/>\n\twait<br \/>\n\trmmod lp parport_pc<br \/>\n    done<\/p>\n<p>for a few seconds.<\/p>\n<p>In the long term I think port registration should be changed to put<br \/>\nthe call to device_add() inside parport_announce_port(), but since the<br \/>\nlatter currently cannot fail this will require changing all port<br \/>\ndrivers.<\/p>\n<p>For now, add a flag to indicate whether a port has been &#8220;announced&#8221;<br \/>\nand only try to attach client drivers to ports when the flag is set.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>parport: Fix race between port and client registration<\/p>\n<p>The parport subsystem registers port devices before they are fully<br \/>\ninitiali<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-14972","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/14972","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=14972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}