Description
In the Linux kernel, the following vulnerability has been resolved: media: cec: disable delayed work before freeing an interrupted transmit cec_transmit_msg_fh() drops adap->lock to wait for a blocking transmit in wait_for_completion_killable(). If that wait is interrupted by a signal, cancel_delayed_work_sync() can run before the CEC kthread arms the reply timeout via schedule_delayed_work(&data->work) in cec_transmit_done_ts(). The work is then armed after the cancel, and the data is freed with its delayed_work still pending: ODEBUG: free active (active state 0) object: ... hint: cec_wait_timeout Use disable_delayed_work_sync(): it cancels the work and disables it, so the later schedule_delayed_work() becomes a no-op and the work cannot be re-armed. The data is freed right after, so it need not be re-enabled.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
490d84f6d73c12f4204241cff8651eed60aae914 to < 9a951931d4b4084acd64fa55fc3672a9da45ddf9affected490d84f6d73c12f4204241cff8651eed60aae914 to < a3adb63b121937b97f7fdc51e96564c7c799538baffected490d84f6d73c12f4204241cff8651eed60aae914 to < 9c6ceb0949227c1f0cf0e19393daec72d9889871affected490d84f6d73c12f4204241cff8651eed60aae914 to < 0fbd5c2327020858c45b2d1c65775d64cdeca523affectede448dfd6d3ec944411f6575bc24e4f8baa1e297faffected2781b86d7e45de09befa5ace296b66787146561faffected4.18.19 to < 4.19affected4.19.2 to < 4.20affected
Linux Linux
Default version status: affected
4.20affected0 to < 4.20unaffected6.12.110 to ≤ 6.12.*unaffected6.18.51 to ≤ 6.18.*unaffected7.2.5 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected