{"id":5386,"date":"2026-09-04T18:47:48","date_gmt":"2026-09-04T10:47:48","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68213"},"modified":"2026-09-04T18:47:48","modified_gmt":"2026-09-04T10:47:48","slug":"cve-2026-68213","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68213","title":{"rendered":"CVE-2026-68213 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: rtl2832_sdr: R"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>media: rtl2832_sdr: Return queued buffers on start_streaming() failure<\/p>\n<p>The vb2 framework hands buffers to the driver via buf_queue() before<br \/>\ncalling start_streaming().  If start_streaming() returns an error<br \/>\nwithout first returning those buffers via vb2_buffer_done(),<br \/>\nvb2_start_streaming() fires WARN_ON(owned_by_drv_count) and the queued<br \/>\nbuffers leak.<\/p>\n<p>rtl2832_sdr_start_streaming() had multiple error paths that hit this<br \/>\ntrap: two direct early returns (-ENODEV, -ERESTARTSYS), plus six<br \/>\n`goto err` paths covering subdev s_power, tuner setup, ADC setup,<br \/>\nstream-buffer allocation, urb allocation, and urb submission failures.<br \/>\nNone of them returned the queued buffers.<\/p>\n<p>The original function had no distinct success exit and fell straight<br \/>\nthrough into the err label, which previously only did mutex_unlock and<br \/>\n&#8220;return ret&#8221;.  Adding queued-buffer cleanup at err must therefore be<br \/>\npaired with an explicit success return; otherwise every successful<br \/>\nstart would also drain the buffer queue and kill streaming.  Add that<br \/>\nsuccess return, then add rtl2832_sdr_cleanup_queued_bufs() at the err<br \/>\nlabel and before each early return.<\/p>\n<p>The cleanup helper takes a vb2_buffer_state argument so that the<br \/>\nstart_streaming error paths can pass VB2_BUF_STATE_QUEUED (as<br \/>\nexpected by userspace on start_streaming failure) while stop_streaming<br \/>\nkeeps its existing VB2_BUF_STATE_ERROR semantics.<\/p>\n<p>This mirrors the uvcvideo fix in commit 4cf3b6fd54eb (&#8220;media: uvcvideo:<br \/>\nReturn queued buffers on start_streaming() failure&#8221;).<\/p>\n<p>The err label still does not roll back power_ctrl(), frontend_ctrl(),<br \/>\nthe POWER_ON flag, or stream\/URB allocations that may have happened<br \/>\nbefore the failing step.  Those are pre-existing leaks of a different<br \/>\nclass and are not addressed here.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>media: rtl2832_sdr: Return queued buffers on start_streaming() failure<\/p>\n<p>The vb2 framework hands buffers to the driver via buf_queue<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-5386","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/5386","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=5386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}