Skip to main content

Linux Kernel EUVDEUVD-2026-27813

| CVE-2026-43250 HIGH
Out-of-bounds Write (CWE-787)
2026-05-06 Linux GHSA-ch2c-h859-gmvp
7.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
6.4 MEDIUM

Trigger requires controlling the USB link (physical) and winning a disconnect-during-transfer race, so AV:P and AC:H; no target privileges (PR:N) but kernel corruption yields full C/I/A impact.

3.1 AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:P/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
HIGH
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Analysis Generated
Jul 24, 2026 - 00:54 vuln.today
CVSS changed
May 12, 2026 - 18:52 NVD
7.8 (HIGH)
Patch available
May 06, 2026 - 13:32 EUVD
CVE Published
May 06, 2026 - 11:28 nvd
HIGH 7.8

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

usb: chipidea: udc: fix DMA and SG cleanup in _ep_nuke()

The ChipIdea UDC driver can encounter "not page aligned sg buffer" errors when a USB device is reconnected after being disconnected during an active transfer. This occurs because _ep_nuke() returns requests to the gadget layer without properly unmapping DMA buffers or cleaning up scatter-gather bounce buffers.

Root cause: When a disconnect happens during a multi-segment DMA transfer, the request's num_mapped_sgs field and sgt.sgl pointer remain set with stale values. The request is returned to the gadget driver with status -ESHUTDOWN but still has active DMA state. If the gadget driver reuses this request on reconnect without reinitializing it, the stale DMA state causes _hardware_enqueue() to skip DMA mapping (seeing non-zero num_mapped_sgs) and attempt to use freed/invalid DMA addresses, leading to alignment errors and potential memory corruption.

The normal completion path via _hardware_dequeue() properly calls usb_gadget_unmap_request_by_dev() and sglist_do_debounce() before returning the request. The _ep_nuke() path must do the same cleanup to ensure requests are returned in a clean, reusable state.

Fix: Add DMA unmapping and bounce buffer cleanup to _ep_nuke() to mirror the cleanup sequence in _hardware_dequeue():

  • Call usb_gadget_unmap_request_by_dev() if num_mapped_sgs is set
  • Call sglist_do_debounce() with copy=false if bounce buffer exists

This ensures that when requests are returned due to endpoint shutdown, they don't retain stale DMA mappings. The 'false' parameter to sglist_do_debounce() prevents copying data back (appropriate for shutdown path where transfer was aborted).

AnalysisAI

Kernel memory corruption in the Linux ChipIdea USB Device Controller (UDC) driver arises when a USB peripheral is disconnected mid-transfer and later reconnected. The _ep_nuke() teardown path returns in-flight requests to the gadget layer with status -ESHUTDOWN but without unmapping DMA buffers or cleaning up scatter-gather bounce buffers, leaving stale num_mapped_sgs and sgt.sgl values; if the gadget driver reuses the request, _hardware_enqueue() skips DMA mapping and operates on freed/invalid DMA addresses (CWE-787 out-of-bounds write). Impact is local with high confidentiality, integrity, and availability effect (CVSS 7.8); EPSS is 0.02% (5th percentile) and there is no public exploit identified at time of analysis.

Technical ContextAI

The affected component is the ChipIdea USB device-controller gadget driver (drivers/usb/chipidea/udc.c) in the mainline Linux kernel, used when a system with a ChipIdea IP block (common in NXP i.MX and similar ARM SoCs) operates in USB peripheral/gadget mode. The driver uses DMA and scatter-gather with a bounce-buffer 'debounce' mechanism for non-page-aligned SG segments. Normal completion via _hardware_dequeue() calls usb_gadget_unmap_request_by_dev() and sglist_do_debounce() to release DMA state, but the abort path _ep_nuke() omitted this, so a request carried stale mapping metadata back to the gadget layer. Reuse of that request then dereferences freed DMA addresses, matching CWE-787 (out-of-bounds write) and manifesting first as 'not page aligned sg buffer' errors and potentially as kernel memory corruption.

RemediationAI

Vendor-released patch: upgrade to a fixed Linux kernel - 6.12.75, 6.18.16, 6.19.6, or 7.0, or the corresponding distribution build such as the one delivered via Ubuntu USN-8492-1 (https://ubuntu.com/security/notices/USN-8492-1). The upstream fix is available as stable commits (e.g. https://git.kernel.org/stable/c/f4fbf2d4750d12ac8525d2efac1016fa0d84d4ec and https://git.kernel.org/stable/c/1b72b834511d17f4d069d512f78671f3f210a2f1), which add usb_gadget_unmap_request_by_dev() and sglist_do_debounce(copy=false) cleanup to _ep_nuke(). Where immediate patching is not possible, compensating controls are limited because the trigger is inherent to gadget-mode disconnect handling: restrict physical USB access to the affected device, and where the ChipIdea controller is not needed as a peripheral, disable or unbind the UDC/gadget functionality (blacklist the relevant chipidea/udc modules or switch the controller to host-only mode) - with the trade-off that USB device/gadget features (e.g. USB networking, mass storage gadget, ADB-style interfaces) will no longer function.

Vendor StatusVendor

SUSE

Severity: High
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

Share

EUVD-2026-27813 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy