Skip to main content

Linux Kernel CVE-2026-31585

| EUVDEUVD-2026-25478 MEDIUM
Memory Leak (CWE-401)
2026-04-24 Linux GHSA-vmqh-6ghr-6c6p
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 access with low privileges required to reach the DVB test device; memory leak yields availability impact only, no confidentiality or integrity effect.

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

6
Analysis Generated
Jul 24, 2026 - 03:00 vuln.today
CVSS changed
Apr 28, 2026 - 20:53 NVD
5.5 (MEDIUM)
Patch released
Apr 28, 2026 - 20:47 nvd
Patch available
Patch available
Apr 24, 2026 - 16:16 EUVD
EUVD ID Assigned
Apr 24, 2026 - 15:00 euvd
EUVD-2026-25478
CVE Published
Apr 24, 2026 - 14:42 nvd
MEDIUM 5.5

DescriptionCVE.org

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

media: vidtv: fix nfeeds state corruption on start_streaming failure

syzbot reported a memory leak in vidtv_psi_service_desc_init [1].

When vidtv_start_streaming() fails inside vidtv_start_feed(), the nfeeds counter is left incremented even though no feed was actually started. This corrupts the driver state: subsequent start_feed calls see nfeeds > 1 and skip starting the mux, while stop_feed calls eventually try to stop a non-existent stream.

This state corruption can also lead to memory leaks, since the mux and channel resources may be partially allocated during a failed start_streaming but never cleaned up, as the stop path finds dvb->streaming == false and returns early.

Fix by decrementing nfeeds back when start_streaming fails, keeping the counter in sync with the actual number of active feeds.

[1] BUG: memory leak unreferenced object 0xffff888145b50820 (size 32): comm "syz.0.17", pid 6068, jiffies 4294944486 backtrace (crc 90a0c7d4): vidtv_psi_service_desc_init+0x74/0x1b0 drivers/media/test-drivers/vidtv/vidtv_psi.c:288 vidtv_channel_s302m_init+0xb1/0x2a0 drivers/media/test-drivers/vidtv/vidtv_channel.c:83 vidtv_channels_init+0x1b/0x40 drivers/media/test-drivers/vidtv/vidtv_channel.c:524 vidtv_mux_init+0x516/0xbe0 drivers/media/test-drivers/vidtv/vidtv_mux.c:518 vidtv_start_streaming drivers/media/test-drivers/vidtv/vidtv_bridge.c:194 [inline] vidtv_start_feed+0x33e/0x4d0 drivers/media/test-drivers/vidtv/vidtv_bridge.c:239

AnalysisAI

State corruption and memory leak in the Linux kernel's vidtv virtual DVB test driver allow a local low-privileged user to cause kernel memory exhaustion. When vidtv_start_streaming() fails inside vidtv_start_feed(), the nfeeds counter is incremented but never rolled back, desynchronizing driver state so that subsequent start calls skip mux initialization and stop calls exit early without freeing partially allocated mux and channel resources. No public exploit exists and EPSS is 0.02% (5th percentile), reflecting the niche nature of the affected test driver component.

Technical ContextAI

The affected component is the vidtv (Virtual Digital TV) driver located in drivers/media/test-drivers/vidtv/ - a kernel-space emulation driver used for testing the DVB subsystem, not intended for production hardware. The root cause is CWE-401 (Missing Release of Memory after Effective Lifetime): when vidtv_start_streaming() fails partway through mux initialization, the nfeeds reference counter has already been incremented but is never decremented on the error path. This corrupts the driver state machine - nfeeds > 1 causes subsequent start_feed calls to believe the mux is already running and skip initialization, while stop_feed calls find dvb->streaming == false and return early without freeing resources. Syzbot traced the leak through vidtv_psi_service_desc_init → vidtv_channel_s302m_init → vidtv_channels_init → vidtv_mux_init, confirming that partial allocations during a failed mux startup accumulate without cleanup. CPE: cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*.

RemediationAI

Upgrade to a patched Linux kernel version: 6.12.83, 6.18.24, 6.19.14, or 7.0.1, as confirmed by vendor stable-tree commits at https://git.kernel.org/stable/c/. Ubuntu users should apply packages per advisory USN-8488-1 at https://ubuntu.com/security/notices/USN-8488-1. If immediate patching is not feasible and the vidtv driver is not operationally required - which is true for virtually all production systems, since vidtv is a test-only driver - blacklist the module by adding 'blacklist vidtv' to /etc/modprobe.d/blacklist.conf and running 'modprobe -r vidtv'. This eliminates the attack surface with no impact on real DVB hardware. Do not confuse vidtv with production DVB drivers; removing it is safe for non-test environments.

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

CVE-2026-31585 vulnerability details – vuln.today

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