{"id":"CVE-2025-39994","revision":"d087be32e1b2467b97a3a46e5d8a56d5","records":[{"revision":"d087be32e1b2467b97a3a46e5d8a56d5","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2025-39994","aliases":[],"title":"media: tuner: xc5000: Fix use-after-free in xc5000_release","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: tuner: xc5000: Fix use-after-free in xc5000_release\n\nThe original code uses cancel_delayed_work() in xc5000_release(), which\ndoes not guarantee that the delayed work item timer_sleep has fully\ncompleted if it was already running. This leads to use-after-free scenarios\nwhere xc5000_release() may free the xc5000_priv while timer_sleep is still\nactive and attempts to dereference the xc5000_priv.\n\nA typical race condition is illustrated below:\n\nCPU 0 (release thread)                 | CPU 1 (delayed work callback)\nxc5000_release()                       | xc5000_do_timer_sleep()\n  cancel_delayed_work()                |\n  hybrid_tuner_release_state(priv)     |\n    kfree(priv)                        |\n                                       |   priv = container_of() // UAF\n\nReplace cancel_delayed_work() with cancel_delayed_work_sync() to ensure\nthat the timer_sleep is properly canceled before the xc5000_priv memory\nis deallocated.\n\nA deadlock concern was considered: xc5000_release() is called in a process\ncontext and is not holding any locks that the timer_sleep work item might\nalso need. Therefore, the use of the _sync() variant is safe here.\n\nThis bug was initially identified through static analysis.\n\n[hverkuil: fix typo in Subject: tunner -> tuner]","state":0,"publishedAt":"2025-10-15T07:58:19.503+00:00","modifiedAt":"2026-10-15T22:02:35.851+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/media/tuners/xc5000.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8\",\n                            \"lessThan\": \"bc4ffd962ce16a154c44c68853b9d93f5b6fc4b8\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8\",\n                            \"lessThan\": \"e2f5eaafc0306a76fb1cb760aae804b065b8a341\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8\",\n                            \"lessThan\": \"3f876cd47ed8bca1e28d68435845949f51f90703\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8\",\n                            \"lessThan\": \"df0303b4839520b84d9367c2fad65b13650a4d42\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8\",\n                            \"lessThan\": \"71ed8b81a4906cb785966910f39cf7f5ad60a69e\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8\",\n                            \"lessThan\": \"effb1c19583bca7022fa641a70766de45c6d41ac\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8\",\n                            \"lessThan\": \"9a00de20ed8ba90888479749b87bc1532cded4ce\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8\",\n                            \"lessThan\": \"4266f012806fc18e46da4a04d130df59a4946f93\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"f7a27ff1fb77e114d1059a5eb2ed1cffdc508ce8\",\n                            \"lessThan\": \"40b7a19f321e65789612ebaca966472055dab48c\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/media/tuners/xc5000.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"3.16\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"3.16\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.4.301\",\n                            \"lessThanOrEqual\": \"5.4.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.246\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.195\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.156\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.111\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.51\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.16.11\",\n                            \"lessThanOrEqual\": \"6.16.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.17.1\",\n                            \"lessThanOrEqual\": \"6.17.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H","score":7.3,"severity":"HIGH"}],"references":["https://git.kernel.org/stable/c/bc4ffd962ce16a154c44c68853b9d93f5b6fc4b8","https://git.kernel.org/stable/c/e2f5eaafc0306a76fb1cb760aae804b065b8a341","https://git.kernel.org/stable/c/3f876cd47ed8bca1e28d68435845949f51f90703","https://git.kernel.org/stable/c/df0303b4839520b84d9367c2fad65b13650a4d42","https://git.kernel.org/stable/c/71ed8b81a4906cb785966910f39cf7f5ad60a69e","https://git.kernel.org/stable/c/effb1c19583bca7022fa641a70766de45c6d41ac","https://git.kernel.org/stable/c/9a00de20ed8ba90888479749b87bc1532cded4ce","https://git.kernel.org/stable/c/4266f012806fc18e46da4a04d130df59a4946f93","https://git.kernel.org/stable/c/40b7a19f321e65789612ebaca966472055dab48c"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2025-39994","license":"CVE Program Terms of Use","key":"cve-program:CVE-2025-39994","identifiers":["CVE-2025-39994"]},"retained":false,"historicalAffected":[]}],"coverage":[]}