usb: gadget: f_fs: initialize reset_work at allocation time

Summary

CVECVE-2026-64594
StatePUBLISHED
AssignerLinux
Source PriorityCVE Program / NVD first with legacy fallback
Published2026-08-06 08:16:34 UTC
Updated2026-08-06 08:16:34 UTC
DescriptionIn the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_fs: initialize reset_work at allocation time ffs_fs_kill_sb() unconditionally calls cancel_work_sync() on ffs->reset_work when a functionfs instance is unmounted: ffs_data_reset(ffs); cancel_work_sync(&ffs->reset_work); However ffs->reset_work is only ever initialized via INIT_WORK() in ffs_func_set_alt() and ffs_func_disable(), and only on the FFS_DEACTIVATED path. That state is reached solely by ffs_data_closed() when the instance is mounted with the "no_disconnect" option, so for the common case (no "no_disconnect", or mounted and unmounted without ever being deactivated) reset_work is never initialized. ffs_data_new() allocates the ffs_data with kzalloc_obj() and does not initialize reset_work, and ffs_data_reset()/ffs_data_clear() do not touch it either, so reset_work.func is left NULL. cancel_work_sync() on such a work then trips the WARN_ON(!work->func) guard in __flush_work(): WARNING: kernel/workqueue.c:4301 at __flush_work+0x330/0x360, CPU#3: umount Call trace: __flush_work cancel_work_sync ffs_fs_kill_sb [usb_f_fs] deactivate_locked_super deactivate_super cleanup_mnt __cleanup_mnt task_work_run exit_to_user_mode_loop el0_svc On older kernels cancel_work_sync() on a zero-initialized work struct was a silent no-op, which hid the missing initialization. Initialize reset_work once in ffs_data_new() so it is always valid for the lifetime of the ffs_data, and drop the now-redundant INIT_WORK() calls from the two deactivation paths.

Risk And Classification

EPSS: 0.001640000 probability, percentile 0.060460000 (date 2026-08-07)

Vendor Declared Affected Products

SourceVendorProductVersionPlatforms
CNA Linux Linux affected 18d6b32fca3841f7cd9479b4024abd8a9b299281 7fe895e0a9651518c4fc082487da770ff9c14c7f git Not specified
CNA Linux Linux affected 18d6b32fca3841f7cd9479b4024abd8a9b299281 0de6ebbabfbbc9c28350283dc97d8a519d5c6dd7 git Not specified
CNA Linux Linux affected 18d6b32fca3841f7cd9479b4024abd8a9b299281 cb19e54ebe9baf3c3243083ade65c937339ccb7b git Not specified
CNA Linux Linux affected 18d6b32fca3841f7cd9479b4024abd8a9b299281 d5631081be07f20e764d3cb5c98ac0a1004fba51 git Not specified
CNA Linux Linux affected 18d6b32fca3841f7cd9479b4024abd8a9b299281 c36393b0d14e1e9783888f821ffe29381b8f46dc git Not specified
CNA Linux Linux affected 18d6b32fca3841f7cd9479b4024abd8a9b299281 69faa3779250df14f51d5084f938a99809546e52 git Not specified
CNA Linux Linux affected 18d6b32fca3841f7cd9479b4024abd8a9b299281 ba1867999dbc4085e6d8c52ac5266005b8b2bf07 git Not specified
CNA Linux Linux affected 18d6b32fca3841f7cd9479b4024abd8a9b299281 3137b243c93982fe3460335e12f9247739766e10 git Not specified
CNA Linux Linux affected 4.0 Not specified
CNA Linux Linux unaffected 4.0 semver Not specified
CNA Linux Linux unaffected 5.10.261 5.10.* semver Not specified
CNA Linux Linux unaffected 5.15.212 5.15.* semver Not specified
CNA Linux Linux unaffected 6.1.178 6.1.* semver Not specified
CNA Linux Linux unaffected 6.6.145 6.6.* semver Not specified
CNA Linux Linux unaffected 6.12.97 6.12.* semver Not specified
CNA Linux Linux unaffected 6.18.40 6.18.* semver Not specified
CNA Linux Linux unaffected 7.1.4 7.1.* semver Not specified
CNA Linux Linux unaffected 7.2-rc3 * original_commit_for_fix Not specified

References

ReferenceSourceLinkTags
git.kernel.org/stable/c/c36393b0d14e1e9783888f821ffe29381b8f46dc 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/7fe895e0a9651518c4fc082487da770ff9c14c7f 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/0de6ebbabfbbc9c28350283dc97d8a519d5c6dd7 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/3137b243c93982fe3460335e12f9247739766e10 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/ba1867999dbc4085e6d8c52ac5266005b8b2bf07 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/cb19e54ebe9baf3c3243083ade65c937339ccb7b 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/69faa3779250df14f51d5084f938a99809546e52 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/d5631081be07f20e764d3cb5c98ac0a1004fba51 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
CVE Program record CVE.ORG www.cve.org canonical
NVD vulnerability detail NVD nvd.nist.gov canonical, analysis

© CVE.report 2026

Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user's risk. It is the responsibility of user to evaluate the accuracy, completeness or usefulness of any information, opinion, advice or other content. EACH USER WILL BE SOLELY RESPONSIBLE FOR ANY consequences of his or her direct or indirect use of this web site. ALL WARRANTIES OF ANY KIND ARE EXPRESSLY DISCLAIMED. This site will NOT BE LIABLE FOR ANY DIRECT, INDIRECT or any other kind of loss.

CVE, CWE, and OVAL are registred trademarks of The MITRE Corporation and the authoritative source of CVE content is MITRE's CVE web site. This site includes MITRE data granted under the following license.

Free CVE JSON API cve.report/api

CVE.report and Source URL Uptime Status status.cve.report