Skip to main content

Linux Kernel EUVDEUVD-2026-25499

| CVE-2026-31606 MEDIUM
2026-04-24 Linux GHSA-48xp-r2j8-cfx4
5.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Open /dev/hidg* as low-privilege user
  2. Delivery
    Trigger USB gadget unbind/rebind cycle
  3. Exploit
    hidg_bind calls cdev_init on in-use cdev structure
  4. Execution
    Kernel dereferences stale/corrupted cdev pointer
  5. Impact
    Kernel oops crashes system

Vulnerability Assessment

Exploitation Conditions

Exploitation requires two non-default conditions to be simultaneously true: (1) the Linux system must be explicitly configured as a USB HID gadget using the kernel gadget framework - this is not a default configuration on any mainstream Linux distribution and requires deliberate setup via configfs or a gadget configuration script, typically found only on embedded devices (Raspberry Pi, BeagleBone, custom IoT hardware) or developer workstations emulating USB HID peripherals; and (2) a /dev/hidg* character device node must be actively open by at least one userspace process at the precise moment a USB gadget unbind/rebind cycle is triggered. The CVSS vector (PR:L) confirms that holding the file descriptor requires only low-privilege local access, though triggering the rebind itself typically requires elevated privileges or a system event. Systems not running the USB gadget stack - including the vast majority of servers, desktops, and cloud VMs - are completely unaffected regardless of privilege level.

Impact

The CVSS 5.5 Medium score (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) accurately reflects a local-only, availability-only impact. Real-world risk is further constrained by EPSS at 0.02% (5th percentile) - one of the lowest exploitation-likelihood tiers - and the absence of any KEV listing or known public exploit. The 'Information Disclosure' tag in the metadata conflicts with the CVSS vector's C:N (no confidentiality impact) and the description, which describes only kernel oopses; this tag likely reflects downstream distribution tagging conventions and should not be treated as a confirmed secondary impact. The attack surface is narrow: only systems explicitly configured as USB HID gadgets (a non-default configuration requiring intentional setup via the gadget framework, typically on embedded hardware) are reachable. On standard server, desktop, or cloud Linux deployments where the USB gadget stack is not configured, this vulnerability is entirely unexploitable. Overall, this is a low-urgency patch for general-purpose Linux environments but a medium-priority fix for embedded/IoT product teams shipping HID gadget-enabled Linux builds.

Exploit ScenarioDerived

On an embedded Linux device (such as a Raspberry Pi or custom IoT hardware) configured as a USB HID gadget, a low-privileged local process opens /dev/hidg0 and holds the file descriptor open. A system management process or administrator subsequently triggers a USB gadget reconfiguration via configfs, causing an unbind/rebind cycle. During hidg_bind, the legacy cdev_init call reinitializes the character device structure in-place while the low-privileged process's reference count is still non-zero, corrupting kernel state and producing a kernel oops that crashes the system. No public exploit code exists at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 24, 2026

Kernel oops and denial of service in the Linux kernel USB gadget HID driver (f_hid) occurs when cdev_init reinitializes an in-use character device during a USB gadget unbind/rebind cycle while /dev/hidg* remains open. A local attacker with low privileges who holds a file descriptor to /dev/hidg0 open during a rebind operation can trigger a kernel oops, crashing the affected system. No public exploit exists and EPSS probability is 0.02% (5th percentile), indicating negligible exploitation interest; however, patched kernel versions are available across multiple stable branches.

RemediationAI

Upgrade to a patched kernel version: 6.12.83, 6.18.24, 6.19.14, or 7.0.1 via the Linux stable tree (https://git.kernel.org/stable/c/c6c0d13db5d0f8d465eabc14bd23d2b6a7247a43). Ubuntu users should apply USN-8488-1 (https://ubuntu.com/security/notices/USN-8488-1). Red Hat and SUSE users should monitor their respective vendor errata portals for kernel updates referencing CVE-2026-31606, as specific advisories were not included in available references. If immediate kernel upgrade is not feasible on systems serving as USB HID gadgets, a compensating control is to unload the usb_f_hid kernel module (rmmod usb_f_hid) to prevent the vulnerable code path from executing; this disables HID gadget functionality entirely. Additionally, restricting /dev/hidg* node permissions via udev rules to deny low-privilege user access reduces the exposure window for the open-file-descriptor precondition, though it does not eliminate the vulnerability if administrative processes also hold the device open during rebind.

Affected VersionsENISA

Linux patch: 6.18.24
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <5a229016ca3ac551294ec59770be9da94ec4bf63
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <75ecc46828ec377dd5692c677168ef6d64fd7123
Linux patch: 6.12.83
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <c6c0d13db5d0f8d465eabc14bd23d2b6a7247a43
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <eb6ef6185f2054a341ec70d7e2165f5381744215
Linux patch: 7.0.1
Linux patch: 6.19.14

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerable code resides in drivers/usb/gadget/function/f_hid.c, the HID function driver within the Linux kernel USB gadget framework. The gadget framework allows Linux systems to emulate USB devices (keyboards, mice, etc.) toward a USB host. A cdev (character device structure) is used to expose /dev/hidg* nodes to userspace. Prior to the fix, hidg_bind called cdev_init to reinitialize this structure in-place during rebind, even when existing file references - tracked by the kernel's reference counter - remained outstanding from an earlier bind. Reinitializing a cdev with live references is effectively a use-after-reinit condition, consistent with CWE-672 (Operation on Resource After Expiration or Release), causing kernel oopses when stale pointers are dereferenced. The fix replaces cdev_init with cdev_alloc, placing the cdev on the heap so each hidg_bind creates a fresh allocation, and the old one is retained until all references drop to zero. Affected CPE: cpe:2.3:a:linux:linux across multiple stable series confirmed by EUVD data.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

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 access to /dev/hidg* with low privilege suffices; no confidentiality or integrity impact - only availability loss via kernel oops on a narrowly configured system.

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:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE MEDIUM

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

4
CVSS changed
Apr 29, 2026 - 20:07 NVD
5.5 (MEDIUM)
Patch released
Apr 29, 2026 - 20:00 nvd
Patch available
Patch available
Apr 24, 2026 - 16:16 EUVD
CVE Published
Apr 24, 2026 - 14:42 nvd
MEDIUM 5.5

DescriptionNVD

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

usb: gadget: f_hid: don't call cdev_init while cdev in use

When calling unbind, then bind again, cdev_init reinitialized the cdev, even though there may still be references to it. That's the case when the /dev/hidg* device is still opened. This obviously unsafe behavior like oopes.

This fixes this by using cdev_alloc to put the cdev on the heap. That way, we can simply allocate a new one in hidg_bind.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Prevalence
Low
USB gadget HID requires intentional non-default embedded/IoT Linux configuration.
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

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