{"id":21663,"date":"2026-09-12T04:31:29","date_gmt":"2026-09-11T20:31:29","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89741"},"modified":"2026-09-12T04:31:29","modified_gmt":"2026-09-11T20:31:29","slug":"cve-2026-89741","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89741","title":{"rendered":"CVE-2026-89741 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nRevert &#8220;media: v4l2-d"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Revert &#8220;media: v4l2-dev: fix error handling in __video_register_device()&#8221;<\/p>\n<p>This reverts commit 2a934fdb01db6458288fc9386d3d8ceba6dd551a.<\/p>\n<p>The intentions of that patch were good, but it doesn&#8217;t work.<\/p>\n<p>The idea is that if device_register fails, you have to do a put_device<br \/>\nto let the ref counter release resources.<\/p>\n<p>However, the V4L2 API says that if video_register_device() fails, then<br \/>\nyou have to call video_device_release(), which kfree()s the video_device<br \/>\nstruct.<\/p>\n<p>But the put_device() will already have freed the struct, so you end<br \/>\nup in a double-free scenario.<\/p>\n<p>There is not really a good way of fixing this without breaking<br \/>\nvideo_register_device() into two parts, one that initializes everything,<br \/>\nand one that does the actual device_register, and then converting all<br \/>\nV4L2 drivers to this new model.<\/p>\n<p>That is a massive job, and it is very unlikely that device_register<br \/>\nwill fail.<\/p>\n<p>So rather than ending up in a double-free scenario, just revert this<br \/>\npatch, and in that case we&#8217;ll have a small memory leak. Which is a lot<br \/>\nmore robust.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Revert &#8220;media: v4l2-dev: fix error handling in __video_register_device()&#8221;<\/p>\n<p>This reverts commit 2a934fdb01db6458288fc9386d3d8ceba6dd<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21663","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21663","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=21663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}