CVE-2026-68204

Summary

In the Linux kernel, the following vulnerability has been resolved:

media: vivid: check for vb2_is_busy() when toggling caps

The vivid_update_format_cap/out() functions must only be called if the capture/output queue are not busy. But for the controls that select the CROP/COMPOSE/SCALE capability that is not checked.

Only when streaming starts will they be set to 'grabbed' and it is impossible to change the control, but between REQBUFS and STREAMON you are still allowed to set these controls. Since vivid_update_format_cap/out will change the format, this can cause unexpected results.

Besides adding these checks, also add a WARN_ON in vivid_update_format_cap/out() if the queue is busy.

I'm 90% certain that this is the cause of this syzbot bug:

https://syzkaller.appspot.com/bug?extid=dac8f5eaa46837e97b89

But since we never have reproducers, it is hard to be certain. In any case, these checks are needed regardless.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux73c3f48230cda01402ae189b05d56f1f7e0d53c9 < a9cd0e8fb0b21faaa71199d9d3feb305c18ff576affected
LinuxLinux73c3f48230cda01402ae189b05d56f1f7e0d53c9 < abaec6747304581f8d4a9936352fa10e13325f07affected
LinuxLinux73c3f48230cda01402ae189b05d56f1f7e0d53c9 < 492c97cb50feaa60ccd7792d3d6b904ed8ec61bfaffected
LinuxLinux73c3f48230cda01402ae189b05d56f1f7e0d53c9 < daf2d92669b4a659d805d88d811161c70cd325eeaffected
LinuxLinux73c3f48230cda01402ae189b05d56f1f7e0d53c9 < c2d1a2130c93f6d758af58590b86b2254c7a1decaffected
LinuxLinux3.18affected
LinuxLinux0 < 3.18unaffected
LinuxLinux6.6.148 <= 6.6.*unaffected
LinuxLinux6.12.101 <= 6.12.*unaffected
LinuxLinux6.18.42 <= 6.18.*unaffected
LinuxLinux7.1.6 <= 7.1.*unaffected
LinuxLinux7.2-rc1 <= *unaffected

Weaknesses

References