Skip to main content

Linux Kernel EUVDEUVD-2026-26535

| CVE-2026-31722 MEDIUM
2026-05-01 Linux
5.5
CVSS 3.1 · NVD
Share

Severity by source

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

Local vector confirmed by description; low privilege required to trigger gadget unbind; only availability impacted via dangling sysfs references, no confidentiality or integrity effect supported by evidence.

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

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

7
Analysis Generated
Jul 24, 2026 - 01:17 vuln.today
CVSS changed
May 06, 2026 - 21:07 NVD
5.5 (MEDIUM)
Patch available
May 01, 2026 - 16:02 EUVD
Patch released
May 01, 2026 - 15:24 nvd
Patch available
EUVD ID Assigned
May 01, 2026 - 15:00 euvd
EUVD-2026-26535
CVE Published
May 01, 2026 - 14:14 nvd
MEDIUM 5.5
CVE Published
May 01, 2026 - 14:14 nvd
N/A

DescriptionCVE.org

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

usb: gadget: f_rndis: Fix net_device lifecycle with device_move

The net_device is allocated during function instance creation and registered during the bind phase with the gadget device as its sysfs parent. When the function unbinds, the parent device is destroyed, but the net_device survives, resulting in dangling sysfs symlinks:

console:/

ls -l /sys/class/net/usb0

lrwxrwxrwx ... /sys/class/net/usb0 -> /sys/devices/platform/.../gadget.0/net/usb0 console:/

ls -l /sys/devices/platform/.../gadget.0/net/usb0

ls: .../gadget.0/net/usb0: No such file or directory

Use device_move() to reparent the net_device between the gadget device tree and /sys/devices/virtual across bind and unbind cycles. During the final unbind, calling device_move(NULL) moves the net_device to the virtual device tree before the gadget device is destroyed. On rebinding, device_move() reparents the device back under the new gadget, ensuring proper sysfs topology and power management ordering.

To maintain compatibility with legacy composite drivers (e.g., multi.c), the borrowed_net flag is used to indicate whether the network device is shared and pre-registered during the legacy driver's bind phase.

AnalysisAI

Dangling sysfs symlinks in the Linux kernel's USB gadget f_rndis driver cause availability loss on systems where the RNDIS USB gadget function is used. The net_device object outlives its sysfs parent when the USB gadget unbinds, leaving broken references under /sys/class/net/ that persist until the kernel object is reclaimed. Exploitation is local and requires low-privilege access; no public exploit or active exploitation (CISA KEV) has been identified, and EPSS probability stands at 0.02% (5th percentile), reflecting minimal real-world exploitation interest at time of analysis.

Technical ContextAI

The f_rndis USB gadget function driver (drivers/usb/gadget/function/f_rndis.c) allocates a net_device during function-instance creation and registers it with the gadget device as its sysfs parent during the bind phase. When the gadget unbinds - for example, during USB cable detach or gadget reconfiguration - the parent gadget device is torn down, but the net_device object survives in memory. This leaves a dangling symbolic link under /sys/class/net/ pointing to a sysfs node that no longer exists, violating the sysfs device tree invariant. The fix applies device_move() to reparent the net_device into the virtual device tree (/sys/devices/virtual) at unbind time, and back under the new gadget on rebind, preserving sysfs topology and power management ordering. CPE data confirms the affected product as cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* across a broad version range introduced at commit f466c6353819326873fa48a02c6f2d7c903240d6. No formal CWE has been assigned, but the root cause most closely resembles CWE-459 (Incomplete Cleanup) - the resource's associated sysfs metadata is not fully cleaned up upon parent teardown. Notably, the assigned tags include 'Information Disclosure,' which conflicts with the provided CVSS vector's C:N (no confidentiality impact); this discrepancy is not resolved by available data and should be verified against the vendor advisory.

RemediationAI

The primary fix is to upgrade the Linux kernel to a patched stable release: 6.12.81, 6.18.22, 6.19.12, or 7.0, which include the device_move() reparenting fix. Distributions tracking these stable branches (Ubuntu via USN-8567-1, RHEL, and SUSE) are expected to ship or have shipped kernel updates - consult the respective vendor advisory channels for package versions. For systems where an immediate kernel upgrade is not feasible, a practical compensating control is to disable or blacklist the f_rndis USB gadget module (modprobe -r usb_f_rndis and adding it to /etc/modprobe.d/blacklist.conf) on any system where RNDIS USB gadget functionality is not required; the trade-off is loss of USB RNDIS networking capability. On embedded systems where USB gadget RNDIS is required and upgrade is blocked, restricting physical USB port access reduces the likelihood of triggering bind/unbind cycles that manifest the dangling symlink condition. No workaround fully eliminates the defect short of patching; sysfs inconsistency can persist across gadget rebind cycles until the kernel object is freed.

Vendor StatusVendor

SUSE

Severity: Medium
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-26535 vulnerability details – vuln.today

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