CVE-2025-39994

Source
https://cve.org/CVERecord?id=CVE-2025-39994
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-39994.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2025-39994
Downstream
Related
Published
2025-10-15T07:58:19.503Z
Modified
2026-03-20T12:43:08.588248Z
Summary
media: tuner: xc5000: Fix use-after-free in xc5000_release
Details

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

media: tuner: xc5000: Fix use-after-free in xc5000_release

The original code uses canceldelayedwork() in xc5000release(), which does not guarantee that the delayed work item timersleep has fully completed if it was already running. This leads to use-after-free scenarios where xc5000release() may free the xc5000priv while timersleep is still active and attempts to dereference the xc5000priv.

A typical race condition is illustrated below:

CPU 0 (release thread) | CPU 1 (delayed work callback) xc5000release() | xc5000dotimersleep() canceldelayedwork() | hybridtunerreleasestate(priv) | kfree(priv) | | priv = containerof() // UAF

Replace canceldelayedwork() with canceldelayedworksync() to ensure that the timersleep is properly canceled before the xc5000_priv memory is deallocated.

A deadlock concern was considered: xc5000release() is called in a process context and is not holding any locks that the timersleep 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]

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/39xxx/CVE-2025-39994.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
f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8
Fixed
bc4ffd962ce16a154c44c68853b9d93f5b6fc4b8
Fixed
e2f5eaafc0306a76fb1cb760aae804b065b8a341
Fixed
3f876cd47ed8bca1e28d68435845949f51f90703
Fixed
df0303b4839520b84d9367c2fad65b13650a4d42
Fixed
71ed8b81a4906cb785966910f39cf7f5ad60a69e
Fixed
effb1c19583bca7022fa641a70766de45c6d41ac
Fixed
9a00de20ed8ba90888479749b87bc1532cded4ce
Fixed
4266f012806fc18e46da4a04d130df59a4946f93
Fixed
40b7a19f321e65789612ebaca966472055dab48c

Database specific

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

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
3.16.0
Fixed
5.4.301
Type
ECOSYSTEM
Events
Introduced
5.5.0
Fixed
5.10.246
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.195
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.156
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.111
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.51
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.16.11
Type
ECOSYSTEM
Events
Introduced
6.17.0
Fixed
6.17.1

Database specific

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