CVE-2026-46011

media: mtk-jpeg: fix use-after-free in release path due to uncancelled work

HIGH
7.8
CVSS Score
Published: May 27, 2026 at 12:56 PM UTC
Updated: August 5, 2026 at 01:24 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.1%

Description

In the Linux kernel, the following vulnerability has been resolved: media: mtk-jpeg: fix use-after-free in release path due to uncancelled work The mtk_jpeg_release() function frees the context structure (ctx) without first cancelling any pending or running work in ctx->jpeg_work. This creates a race window where the workqueue callback may still be accessing the context memory after it has been freed. Race condition: CPU 0 (release) CPU 1 (workqueue) ---------------- ------------------ close() mtk_jpeg_release() mtk_jpegenc_worker() ctx = work->data // accessing ctx kfree(ctx) // freed! access ctx // UAF! The work is queued via queue_work() during JPEG encode/decode operations (via mtk_jpeg_device_run). If the device is closed while work is pending or running, the work handler will access freed memory. Fix this by calling cancel_work_sync() BEFORE acquiring the mutex. This ordering is critical: if cancel_work_sync() is called after mutex_lock(), and the work handler also tries to acquire the same mutex, it would cause a deadlock. Note: The open error path does NOT need cancel_work_sync() because INIT_WORK() only initializes the work structure - it does not schedule it. Work is only scheduled later during ioctl operations.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.13 ≤ v < 6.18.276.19 ≤ v < 7.0.46.2 ≤ v < 6.12.866.2 ≤ v < 6.18.276.2 ≤ v < 6.6.1406.2 ≤ v < 7.0.46.2 ≤ v < 7.16.7 ≤ v < 6.12.865fb1c2361e5630491d2a2f9359654eb022601bc06.2
Vendor states this is fixed in 2209fdae5c2f615930c9af1379c1cfca199ec5d8 (fixed)
Vendor states this is fixed in 26506a30e0e26d612f82a7bf0e395626968a44e6 (fixed)
Vendor states this is fixed in 34c519feef3e4fcff1078dc8bdb25fbbbd10303f (fixed)
Vendor states this is fixed in 498b27a1542021d90269d58347501d4c3ccd84e (fixed)
Vendor states this is fixed in e78c39f720679fcf3a2eacd82725ec3ea2648301 (fixed)
Vendor states this is fixed in 6.12.86 (unaffected)
Vendor states this is fixed in 6.18.27 (unaffected)
Vendor states this is fixed in 6.2 (unaffected)
Vendor states this is fixed in 6.6.140 (unaffected)
Vendor states this is fixed in 7.0.4 (unaffected)
Vendor states this is fixed in 7.1 (unaffected)

CVSS

7.8HIGHLinux
Vector?

Quick Info

StatusANALYZED
CWE
CWE-416

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card