Skip to main content

Linux Kernel EUVDEUVD-2026-25471

| CVE-2026-31578 HIGH
Use After Free (CWE-416)
2026-04-24 Linux GHSA-wrgv-v45w-6gxv
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
7.0 HIGH

Local access and ability to open the device give AV:L/PR:L; winning the probe-error-path race makes AC:H; heap corruption yields high C/I/A with no scope change.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:N/PR:L/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

6
Analysis Generated
Jul 24, 2026 - 03:04 vuln.today
CVSS changed
Apr 27, 2026 - 20:52 NVD
7.8 (HIGH)
Patch released
Apr 27, 2026 - 20:42 nvd
Patch available
Patch available
Apr 24, 2026 - 16:16 EUVD
EUVD ID Assigned
Apr 24, 2026 - 15:00 euvd
EUVD-2026-25471
CVE Published
Apr 24, 2026 - 14:42 nvd
HIGH 7.8

DescriptionCVE.org

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

media: as102: fix to not free memory after the device is registered in as102_usb_probe()

In as102_usb driver, the following race condition occurs:

		CPU0						CPU1
as102_usb_probe()
  kzalloc(); // alloc as102_dev_t
  ....
  usb_register_dev();
						fd = sys_open("/path/to/dev"); // open as102 fd
						....
  usb_deregister_dev();
  ....
  kfree(); // free as102_dev_t
  ....
						sys_close(fd);
						  as102_release() // UAF!!
						    as102_usb_release()
						      kfree(); // DFB!!

When a USB character device registered with usb_register_dev() is later unregistered (via usb_deregister_dev() or disconnect), the device node is removed so new open() calls fail. However, file descriptors that are already open do not go away immediately: they remain valid until the last reference is dropped and the driver's .release() is invoked.

In as102, as102_usb_probe() calls usb_register_dev() and then, on an error path, does usb_deregister_dev() and frees as102_dev_t right away. If userspace raced a successful open() before the deregistration, that open FD will later hit as102_release() --> as102_usb_release() and access or free as102_dev_t again, occur a race to use-after-free and double-free vuln.

The fix is to never kfree(as102_dev_t) directly once usb_register_dev() has succeeded. After deregistration, defer freeing memory to .release().

In other words, let release() perform the last kfree when the final open FD is closed.

AnalysisAI

Use-after-free and double-free in the Linux kernel's as102 DVB-T USB media driver (drivers/media/usb/as102) allows a local user to corrupt kernel memory by racing an open() of the device node against an error path in as102_usb_probe(). Because the probe error path frees the as102_dev_t structure immediately after usb_register_dev()/usb_deregister_dev() while a userspace file descriptor may still hold a reference, the later .release() path re-accesses and re-frees that structure. CVSS is 7.8 (local, low-privilege); EPSS is negligible (0.02%), no public exploit is identified, and it is not in CISA KEV.

Technical ContextAI

The bug lives in the Abilis AS102 DVB-T USB tuner driver, which registers a USB character device via usb_register_dev(). USB character devices unregistered with usb_deregister_dev() remove the /dev node so new opens fail, but already-open file descriptors remain valid until their final close triggers the driver's .release() callback. The root cause is CWE-416 (Use After Free): the probe error path calls kfree() on the as102_dev_t object directly instead of deferring the last free to release(), so an FD opened during the race outlives the allocation. The subsequent as102_release() -> as102_usb_release() then dereferences and kfree()s the same object again, producing both a use-after-free and a double-free of kernel heap memory. Affected CPE is cpe:2.3:a:linux:linux, i.e. the mainline kernel, but only when the as102_usb module is loaded and bound to hardware.

RemediationAI

Vendor-released patch: update to a fixed stable kernel - 6.12.83, 6.18.24, 6.19.14, or 7.0.1 (or later), which move the final kfree of as102_dev_t into the .release() callback so freeing is deferred until the last open FD is closed. Distribution users should apply the corresponding vendor update, e.g. Ubuntu per USN-8488-1 (https://ubuntu.com/security/notices/USN-8488-1); the upstream fix commits are at https://git.kernel.org/stable/c/582fbecb3756330006fe1950762412a68c2cacd2 and the related 7e5aedf6059c/2eeae47a4386/09e9206008b8. If immediate patching is not possible, blacklist/unload the as102_usb module (e.g. add 'blacklist dvb-usb-as102' / prevent modprobe) so the vulnerable code path is never reached - the trade-off is losing support for Abilis AS102 DVB-T USB tuners. Restricting physical USB access and tightening permissions on the associated /dev node also reduces exposure, at the cost of legitimate local users' access to the tuner device.

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-25471 vulnerability details – vuln.today

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