usb: gadget: f_fs: Fix epfile null pointer access after ep enable.
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.4.302, 5.10.247, 5.15.197, 4.15, 4.20, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_fs: Fix epfile null pointer access after ep enable. A race condition occurs when ffs_func_eps_enable() runs concurrently with ffs_data_reset(). The ffs_data_clear() called in ffs_data_reset() sets ffs->epfiles to NULL before resetting ffs->eps_count to 0, leading to a NULL pointer dereference when accessing epfile->ep in ffs_func_eps_enable() after successful usb_ep_enable(). The ffs->epfiles pointer is set to NULL in both ffs_data_clear() and ffs_data_close() functions, and its modification is protected by the spinlock ffs->eps_lock. And the whole ffs_func_eps_enable() function is also protected by ffs->eps_lock. Thus, add NULL pointer handling for ffs->epfiles in the ffs_func_eps_enable() function to fix issues
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5.4.180 · fixed in 5.4.302; From 5.10.101 · fixed in 5.10.247; From 5.15.24 · fixed in 5.15.197; From 4.14.267 · fixed in 4.15; From 4.19.230 · fixed in 4.20; From 5.16.10 · fixed in 5.17
- Linux Linux
5.17
References 8
git.kernel.org
- stable/c/b00d2572c16e8e59e979960d3383c2ae9cebd195
- stable/c/1c0dbd240be3f87cac321b14e17979b7e9cb6a8f
- stable/c/9ec40fba7357df2d36f4c2e2f3b9b1a4fba0a272
- stable/c/c53e90563bc148e4e0ad09fe130ba2246d426ea6
- stable/c/fc1141a530dfc91f0ee19b7f422a2d24829584bc
- stable/c/d62b808d5c68a931ad0849a00a5e3be3dd7e0019
- stable/c/30880e9df27332403dd638a82c27921134b3630b
- stable/c/cfd6f1a7b42f62523c96d9703ef32b0dbc495ba4