CVE-2023-52491

Source
https://cve.org/CVERecord?id=CVE-2023-52491
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-52491.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-52491
Downstream
Related
Published
2024-02-29T15:52:09.891Z
Modified
2026-03-13T07:48:02.899558Z
Summary
media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run
Details

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

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

In mtkjpegprobe, &jpeg->jobtimeoutwork is bound with mtkjpegjobtimeoutwork.

In mtkjpegdecdevicerun, if error happens in mtkjpegsetdecdst, it will finally start the worker while mark the job as finished by invoking v4l2m2mjob_finish.

There are two methods to trigger the bug. If we remove the module, it which will call mtkjpegremove to make cleanup. The possible sequence is as follows, which will cause a use-after-free bug.

CPU0 CPU1 mtkjpegdec_... | start worker | |mtkjpegjobtimeoutwork mtkjpegremove | v4l2m2mrelease | kfree(m2mdev); | | | v4l2m2mgetcurrpriv | m2mdev->curr_ctx //use

If we close the file descriptor, which will call mtkjpegrelease, it will have a similar sequence.

Fix this bug by starting timeout worker only if started jpegdec worker successfully. Then v4l2m2mjobfinish will only be called in either mtkjpegjobtimeoutwork or mtkjpegdecdevice_run.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/52xxx/CVE-2023-52491.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b2f0d2724ba477d326e9d654d4db1c93e98f8b93
Fixed
43872f44eee6c6781fea1348b38885d8e78face9
Fixed
1b1036c60a37a30caf6759a90fe5ecd06ec35590
Fixed
9fec4db7fff54d9b0306a332bab31eac47eeb5f6
Fixed
8254d54d00eb6cdb8367399c7f912eb8d354ecd7
Fixed
6e2f37022f0fc0893da4d85a0500c9d547fffd4c
Fixed
206c857dd17d4d026de85866f1b5f0969f2a109e

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-52491.json"