Use-after-free in Linux kernel cdc-acm driver after USB disconnect
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Partial Red Hat: 1 without a fix
No CVSS vector from any source. Fix status from CNA and Red Hat.
Summary
The cdc-acm USB modem driver in the Linux kernel can restart USB request blocks when a port shuts down after the device was disconnected. This race lets the driver access DMA buffers that a concurrent disconnect has already freed, which causes a use-after-free. Affected versions span several Linux kernel stable branches.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
In the Linux kernel, the following vulnerability has been resolved: USB: cdc-acm: skip URB restart in port_shutdown if disconnected acm_port_shutdown() is called from the tty-port machinery whenever the last user closes the port. acm_disconnect() sets acm->disconnected and calls tty_port_tty_vhangup(), which eventually triggers port_shutdown(). At that point acm_disconnect() has already called acm_poison_urbs() and is about to free the control and read URBs. However, acm_port_shutdown() unconditionally calls acm_unpoison_urbs() and, when the ALWAYS_POLL_CTRL quirk is set, immediately re-submits the ctrlurb and all read URBs. If the concurrent acm_disconnect() then frees those URBs and their DMA buffers while they are in-flight, the result is a use-after-free in acm_ctrl_irq() or acm_read_bulk_callback() accessing the freed DMA memory. Fix by checking acm->disconnected after draining the delayed anchor and returning early: if we are in a disconnect path the URBs must remain poisoned and must not be resubmitted. The early return is placed after the delayed-anchor drain loop because that loop only cancels write-side accounting (wb->use = false and autopm counter) and does not touch the hardware path.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Linux | Linux | 6.1.175 to before 6.1.191; 6.6.136 to before 6.6.160; 6.12.83 to before 6.12.113; 6.18.24 to before 6.18.56; 6.19.14 to before 6.20; 7.0.1 to before 7.1 | 6.1.191, 6.6.160, 6.12.113, 6.18.56, 6.20, 7.1 | Patch available | CNA |
| Linux | Linux | 7.1 and later | 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.2.10, 7.3 | Patch available | CNA |
- Linux VendorLinux Affected 6.1.175 to before 6.1.191; 6.6.136 to before 6.6.160; 6.12.83 to before 6.12.113; 6.18.24 to before 6.18.56; 6.19.14 to before 6.20; 7.0.1 to before 7.1 Fixed in 6.1.191, 6.6.160, 6.12.113, 6.18.56, 6.20, 7.1 Patch available CNA
- Linux VendorLinux Affected 7.1 and later Fixed in 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.2.10, 7.3 Patch available CNA
Remediation
Upgrade the Linux kernel to 6.1.191, 6.6.160, 6.12.113, 6.18.56, 6.20, 7.1, 7.2.10 or 7.3, depending on the branch in use. Red Hat lists Red Hat Enterprise Linux 6 as affected with no fix planned.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA Linux (Linux) Fixed in 6.1.191, 6.6.160, 6.12.113, 6.18.56, 6.20, 7.1
- Fix · CNA Linux (Linux) Fixed in 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.2.10, 7.3
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 6 | Affected | No fix planned: Out of support scope |
Not affected: 6 products
- Red Hat Enterprise Linux 10
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
- Red Hat OpenShift Container Platform 4
- Red Hat OpenShift Container Platform 5
Timeline
- 2026-10-18 Threatist record created from CVE-2026-98773
- 2026-10-18 Alias added: GHSA-fp39-rj9v-7xc4
- 2026-10-19 Fix available: Linux/[email protected] · CNA
- 2026-10-21 Fix available: Linux/[email protected], Linux/Linux@d86775e79838d7d2e38ccf506a7d0f8e2dd4d5d0 · CNA
- 2026-10-21 1 new reference · CNA
- 2026-10-23 Affected versions changed · Red Hat
- 2026-10-23 CVSS score added · Red Hat
- 2026-10-30 Fix available: Linux/[email protected], Linux/Linux@d97da42e9de577dc827d4e8866e6971deefe2d9c · CNA
- 2026-10-30 1 new reference · CNA
- 2026-11-06 Affected versions changed · Red Hat
References
Other 6
- https://git.kernel.org/stable/c/d97da42e9de577dc827d4e8866e6971deefe2d9c
- https://git.kernel.org/stable/c/d86775e79838d7d2e38ccf506a7d0f8e2dd4d5d0
- https://git.kernel.org/stable/c/9742905d9ed5bf23ebe4c100dec80b6bc50fb522
- https://git.kernel.org/stable/c/a0ed07b5bbb2d8fcef86810453216070691816e7
- https://git.kernel.org/stable/c/420ca35af891d33522cc08504768ccd60a4c450a
- https://git.kernel.org/stable/c/dc614d6bc991740d41d5a99ac7765c4b675dda88
More Linux vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
Sources
- CVE-2026-98773 · CVE Program
- CVE-2026-98773 · NVD
- FIRST EPSS
- GHSA-fp39-rj9v-7xc4 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-98773 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences