CVE-2025-39994 media: tuner: xc5000: Fix use-after-free in xc5000_release
A use-after-free vulnerability in the Linux kernel's xc5000 tuner driver allows attackers to potentially execute code or escalate privileges via a race condition.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2025-39994?
CVE-2025-39994 is a high-severity use after free vulnerability in Linux, published on 15 Oct 2025. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.
Official description
In the Linux kernel, the following vulnerability has been resolved:
media: tuner: xc5000: Fix use-after-free in xc5000_release
The original code uses cancel_delayed_work() in xc5000_release(), which does not guarantee that the delayed work item timer_sleep has fully completed if it was already running. This leads to use-after-free scenarios where xc5000_release() may free the xc5000_priv while timer_sleep is still active and attempts to dereference the xc5000_priv.
A typical race condition is illustrated below:
CPU 0 (release thread) | CPU 1 (delayed work callback) xc5000_release() | xc5000_do_timer_sleep() cancel_delayed_work() | hybrid_tuner_release_state(priv) | kfree(priv) | | priv = container_of() // UAF
Replace cancel_delayed_work() with cancel_delayed_work_sync() to ensure that the timer_sleep is properly canceled before the xc5000_priv memory is deallocated.
A deadlock concern was considered: xc5000_release() is called in a process context and is not holding any locks that the timer_sleep work item might also need. Therefore, the use of the _sync() variant is safe here.
This bug was initially identified through static analysis.
[hverkuil: fix typo in Subject: tunner -> tuner]
Which versions are affected by CVE-2025-39994?
How do I fix CVE-2025-39994?
Apply the vendor's patch.
Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.
Is CVE-2025-39994 being exploited?
There is no known exploitation of CVE-2025-39994 in the wild and no public exploit code.
Sources
Also known as AZL-68510, BELL-CVE-2025-39994, DEBIAN-CVE-2025-39994, GHSA-ghgh-r6c5-cgx8, ROOT-OS-DEBIAN-11-CVE-2025-39994, ROOT-OS-DEBIAN-12-CVE-2025-39994 and 4 more.