In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_acm: Refactor bind path to use __free() After an bind/unbind… (CVE-2025-40094)
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_acm: Refactor bind path to use __free() After an bind/unbind cycle, the acm->notify_req is left stale. If a subsequent bind fails, the unified error label attempts to free this stale request, leading to a NULL pointer dereference when accessing ep->ops->free_request. Refactor the error handling in the bind path to use the __free() automatic cleanup mechanism. Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020 Call trace: usb_ep_free_request+0x2c/0xec gs_free_req+0x30/0x44 acm_bind+0x1b8/0x1f4 usb_add_function+0xcc/0x1f0 configfs_composite_bind+0x468/0x588 gadget_bind_driver+0x104/0x270 really_probe+0x190/0x374 __driver_probe_device+0xa0/0x12c driver_probe_device+0x3c/0x218 __device_attach_driver+0x14c/0x188 bus_for_each_drv+0x10c/0x168 __device_attach+0xfc/0x198 device_initial_probe+0x14/0x24 bus_probe_device+0x94/0x11c device_add+0x268/0x48c usb_add_gadget+0x198/0x28c dwc3_gadget_init+0x700/0x858 __dwc3_set_mode+0x3cc/0x664 process_scheduled_works+0x1d8/0x488 worker_thread+0x244/0x334 kthread+0x114/0x1bc ret_from_fork+0x10/0x20
AI Analysis
Technical Summary
The Linux kernel's usb gadget ACM function had a flaw where after a bind/unbind cycle, the acm->notify_req pointer remained stale. If a subsequent bind operation failed, the error handling code attempted to free this stale request, causing a NULL pointer dereference when accessing ep->ops->free_request. The vulnerability was addressed by refactoring the bind path error handling to use the __free() automatic cleanup mechanism, preventing the stale pointer dereference and kernel crash.
Potential Impact
Successful exploitation of this vulnerability can cause a kernel NULL pointer dereference, leading to a denial of service via a kernel crash. The CVSS vector indicates high impact on confidentiality, integrity, and availability, but no known exploits are reported in the wild.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Since this is a Linux kernel vulnerability, monitor official Linux kernel security advisories for patches or updates that address this issue. Until a patch is applied, avoid triggering bind/unbind cycles on the affected USB gadget ACM function if possible.
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_acm: Refactor bind path to use __free() After an bind/unbind… (CVE-2025-40094)
Description
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_acm: Refactor bind path to use __free() After an bind/unbind cycle, the acm->notify_req is left stale. If a subsequent bind fails, the unified error label attempts to free this stale request, leading to a NULL pointer dereference when accessing ep->ops->free_request. Refactor the error handling in the bind path to use the __free() automatic cleanup mechanism. Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020 Call trace: usb_ep_free_request+0x2c/0xec gs_free_req+0x30/0x44 acm_bind+0x1b8/0x1f4 usb_add_function+0xcc/0x1f0 configfs_composite_bind+0x468/0x588 gadget_bind_driver+0x104/0x270 really_probe+0x190/0x374 __driver_probe_device+0xa0/0x12c driver_probe_device+0x3c/0x218 __device_attach_driver+0x14c/0x188 bus_for_each_drv+0x10c/0x168 __device_attach+0xfc/0x198 device_initial_probe+0x14/0x24 bus_probe_device+0x94/0x11c device_add+0x268/0x48c usb_add_gadget+0x198/0x28c dwc3_gadget_init+0x700/0x858 __dwc3_set_mode+0x3cc/0x664 process_scheduled_works+0x1d8/0x488 worker_thread+0x244/0x334 kthread+0x114/0x1bc ret_from_fork+0x10/0x20
CVSS v3.1
Score 7.8high
Affected software
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Linux kernel's usb gadget ACM function had a flaw where after a bind/unbind cycle, the acm->notify_req pointer remained stale. If a subsequent bind operation failed, the error handling code attempted to free this stale request, causing a NULL pointer dereference when accessing ep->ops->free_request. The vulnerability was addressed by refactoring the bind path error handling to use the __free() automatic cleanup mechanism, preventing the stale pointer dereference and kernel crash.
Potential Impact
Successful exploitation of this vulnerability can cause a kernel NULL pointer dereference, leading to a denial of service via a kernel crash. The CVSS vector indicates high impact on confidentiality, integrity, and availability, but no known exploits are reported in the wild.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Since this is a Linux kernel vulnerability, monitor official Linux kernel security advisories for patches or updates that address this issue. Until a patch is applied, avoid triggering bind/unbind cycles on the affected USB gadget ACM function if possible.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-qr6v-84mv-g36r
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2025-40094"]
- Database Specific Severity
- HIGH
- Cvss Version
- 3.1
Threat ID: 6a6b72d69c2644c7f847ac15
Added to database: 07/30/2026, 15:50:46 UTC
Last enriched: 07/30/2026, 16:25:20 UTC
Last updated: 09/10/2026, 19:36:50 UTC
Views: 9
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.