Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-57913— usb: gadget: f_fs: Remove WARN_ON in functionfs_bind

EPSS 0.02% · P7
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2024-57913

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
usb: gadget: f_fs: Remove WARN_ON in functionfs_bind
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_fs: Remove WARN_ON in functionfs_bind This commit addresses an issue related to below kernel panic where panic_on_warn is enabled. It is caused by the unnecessary use of WARN_ON in functionsfs_bind, which easily leads to the following scenarios. 1.adb_write in adbd 2. UDC write via configfs ================= ===================== ->usb_ffs_open_thread() ->UDC write ->open_functionfs() ->configfs_write_iter() ->adb_open() ->gadget_dev_desc_UDC_store() ->adb_write() ->usb_gadget_register_driver_owner ->driver_register() ->StartMonitor() ->bus_add_driver() ->adb_read() ->gadget_bind_driver() <times-out without BIND event> ->configfs_composite_bind() ->usb_add_function() ->open_functionfs() ->ffs_func_bind() ->adb_open() ->functionfs_bind() <ffs->state !=FFS_ACTIVE> The adb_open, adb_read, and adb_write operations are invoked from the daemon, but trying to bind the function is a process that is invoked by UDC write through configfs, which opens up the possibility of a race condition between the two paths. In this race scenario, the kernel panic occurs due to the WARN_ON from functionfs_bind when panic_on_warn is enabled. This commit fixes the kernel panic by removing the unnecessary WARN_ON. Kernel panic - not syncing: kernel: panic_on_warn set ... [ 14.542395] Call trace: [ 14.542464] ffs_func_bind+0x1c8/0x14a8 [ 14.542468] usb_add_function+0xcc/0x1f0 [ 14.542473] configfs_composite_bind+0x468/0x588 [ 14.542478] gadget_bind_driver+0x108/0x27c [ 14.542483] really_probe+0x190/0x374 [ 14.542488] __driver_probe_device+0xa0/0x12c [ 14.542492] driver_probe_device+0x3c/0x220 [ 14.542498] __driver_attach+0x11c/0x1fc [ 14.542502] bus_for_each_dev+0x104/0x160 [ 14.542506] driver_attach+0x24/0x34 [ 14.542510] bus_add_driver+0x154/0x270 [ 14.542514] driver_register+0x68/0x104 [ 14.542518] usb_gadget_register_driver_owner+0x48/0xf4 [ 14.542523] gadget_dev_desc_UDC_store+0xf8/0x144 [ 14.542526] configfs_write_iter+0xf0/0x138
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞。攻击者利用该漏洞可以导致内核崩溃。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux ddf8abd2599491cbad959c700b90ba72a5dce8d0 ~ bfe60030fcd976e3546e1f73d6d0eb3fea26442e -
LinuxLinux 2.6.35 -

II. Public POCs for CVE-2024-57913

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-57913

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-01-19 · 47 CVEs total

CVE-2024-57916misc: microchip: pci1xxxx: Resolve kernel panic during GPIO IRQ handling
CVE-2024-57918drm/amd/display: fix page fault due to max surface definition mismatch
CVE-2024-57921drm/amdgpu: Add a lock when accessing the buddy trim function
CVE-2024-57925ksmbd: fix a missing return value check bug
CVE-2024-57926drm/mediatek: Set private->all_drm_private[i]->drm to NULL if mtk_drm_bind returns err
CVE-2024-57928netfs: Fix enomem handling in buffered reads
CVE-2024-57927nfs: Fix oops in nfs_netfs_init_request() when copying to cache
CVE-2024-57929dm array: fix releasing a faulty array block twice in dm_array_cursor_end
CVE-2024-57923btrfs: zlib: fix avail_in bytes for s390 zlib HW compression path
CVE-2024-57917topology: Keep the cpumask unchanged when printing cpumap
CVE-2024-57919drm/amd/display: fix divide error in DM plane scale calcs
CVE-2024-57914usb: typec: tcpci: fix NULL pointer issue on shared irq case
CVE-2024-57912iio: pressure: zpa2326: fix information leak in triggered buffer
CVE-2024-57911iio: dummy: iio_simply_dummy_buffer: fix information leak in triggered buffer
CVE-2024-57910iio: light: vcnl4035: fix information leak in triggered buffer
CVE-2024-57908iio: imu: kmx61: fix information leak in triggered buffer
CVE-2024-57909iio: light: bh1745: fix information leak in triggered buffer
CVE-2024-57907iio: adc: rockchip_saradc: fix information leak in triggered buffer
CVE-2024-57905iio: adc: ti-ads1119: fix information leak in triggered buffer
CVE-2024-57906iio: adc: ti-ads8688: fix information leak in triggered buffer

Showing top 20 of 47 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-57913

No comments yet


Leave a comment