CVE-2023-52491CWE-416

CVE-2023-52491

High · published March 11, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
19.2
In the wild
Unconfirmed
What it is

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

media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run

In mtk_jpeg_probe, &jpeg->job_timeout_work is bound with

mtk_jpeg_job_timeout_work.

In mtk_jpeg_dec_device_run, if error happens in

mtk_jpeg_set_dec_dst, it will finally start the worker while

mark the job as finished by invoking v4l2_m2m_job_finish.

There are two methods to trigger the bug. If we remove the

module, it which will call mtk_jpeg_remove to make cleanup.

The possible sequence is as follows, which will cause a

use-after-free bug.

CPU0 CPU1

mtk_jpeg_dec_... |

start worker |

|mtk_jpeg_job_timeout_work

mtk_jpeg_remove |

v4l2_m2m_release |

kfree(m2m_dev); |

|

| v4l2_m2m_get_curr_priv

| m2m_dev->curr_ctx //use

If we close the file descriptor, which will call mtk_jpeg_release,

it will have a similar sequence.

Fix this bug by starting timeout worker only if started jpegdec worker

successfully. Then v4l2_m2m_job_finish will only be called in

either mtk_jpeg_job_timeout_work or mtk_jpeg_dec_device_run.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00278 · 19.2th percentile
Weakness
CWE-416 · Use After Free
Published
2024-03-11T22:15Z
Affected products (5)
ProductVersionsFixed in
linux/linux_kernel≥ 4.12, < 5.10.2105.10.210
linux/linux_kernel≥ 5.11, < 5.15.1495.15.149
linux/linux_kernel≥ 5.16, < 6.1.766.1.76
linux/linux_kernel≥ 6.2, < 6.6.156.6.15
linux/linux_kernel≥ 6.7, < 6.7.36.7.3
References (13)
EPSS history
Timeline
  • 29 FEB 15:52Z
    media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run
    cvelistv5