linux/drivers/media
Zheng Wang d56dbfe750 media: mtk-jpeg: Fix use after free bug due to uncanceled work
commit c677d7ae83 upstream.

In mtk_jpeg_probe, &jpeg->job_timeout_work is bound with
mtk_jpeg_job_timeout_work. Then mtk_jpeg_dec_device_run
and mtk_jpeg_enc_device_run may be called to start the
work.
If we remove the module which will call mtk_jpeg_remove
to make cleanup, there may be a unfinished work. The
possible sequence is as follows, which will cause a
typical UAF bug.

Fix it by canceling the work before cleanup in the mtk_jpeg_remove

CPU0                  CPU1

                    |mtk_jpeg_job_timeout_work
mtk_jpeg_remove     |
  v4l2_m2m_release  |
    kfree(m2m_dev); |
                    |
                    | v4l2_m2m_get_curr_priv
                    |   m2m_dev->curr_ctx //use
Fixes: b2f0d2724b ("[media] vcodec: mediatek: Add Mediatek JPEG Decoder Driver")
Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2023-10-19 23:05:35 +02:00
..
cec media: pulse8-cec: handle possible ping error 2023-09-19 12:22:26 +02:00
common media: vb2: frame_vector.c: replace WARN_ONCE with a comment 2023-10-06 13:18:18 +02:00
dvb-core media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221 2023-06-09 10:32:24 +02:00
dvb-frontends media: dvb: symbol fixup for dvb_attach() 2023-09-19 12:22:51 +02:00
firewire media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt() 2021-11-06 14:13:30 +01:00
i2c media: i2c: ccs: Check rules is non-NULL 2023-09-19 12:22:50 +02:00
mc media: mc-device.c: use DEVICE_ATTR_RO() helper macro 2021-08-04 14:43:50 +02:00
mmc media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
pci media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning 2023-09-23 11:09:59 +02:00
platform media: mtk-jpeg: Fix use after free bug due to uncanceled work 2023-10-19 23:05:35 +02:00
radio media: radio-shark: Add endpoint checks 2023-05-30 13:55:31 +01:00
rc media: rc: gpio-ir-recv: Fix support for wake-up 2023-05-11 23:00:24 +09:00
spi media: cxd2880-spi: Fix a null pointer dereference on error handling path 2021-11-18 19:16:27 +01:00
test-drivers media: vimc: Fix wrong function called when vimc_init() fails 2022-12-31 13:14:12 +01:00
tuners media: tuners: qt1010: replace BUG_ON with a regular error 2023-09-23 11:09:58 +02:00
usb media: dvb-usb-v2: gl861: Fix null-ptr-deref in gl861_i2c_master_xfer 2023-09-23 11:09:58 +02:00
v4l2-core media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link() 2023-09-19 12:22:43 +02:00
Kconfig media: correct MEDIA_TEST_SUPPORT help text 2022-01-27 11:05:20 +01:00
Makefile media: media/test_drivers: rename to test-drivers 2020-04-16 10:38:31 +02:00