Skip to main content

Linux Kernel CVE-2026-64029

| EUVDEUVD-2026-45602 HIGH
2026-07-19 Linux GHSA-93ph-845p-qqq3
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) 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 to ALSA seq devices (AV:L, PR:L), no user interaction; exploitation is a narrow timing race so AC:H; kernel UAF gives high C/I/A within the same component (S:U).

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
Red Hat
7.0 MEDIUM
qualitative

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

5
Analysis Generated
Jul 20, 2026 - 16:57 vuln.today
CVSS changed
Jul 20, 2026 - 15:22 NVD
7.8 (HIGH)
Patch available
Jul 19, 2026 - 17:03 EUVD
CVE Published
Jul 19, 2026 - 15:39 cve.org
HIGH 7.8
CVE Published
Jul 19, 2026 - 15:39 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

ALSA: seq: Serialize UMP output teardown with event_input

seq_ump_process_event() borrows client->out_rfile.output without synchronizing with the first-open and last-close transition in seq_ump_client_open() and seq_ump_client_close().

The last output unuse can therefore drop opened[STR_OUT] to zero and release the rawmidi file while an in-flight event_input callback is still inside snd_rawmidi_kernel_write(). That leaves the rawmidi substream runtime exposed to teardown before the write path has taken its own buffer reference.

Add a per-client rwlock for the event_input-visible output file. Publish a newly opened output file under the write side, and hold the read side from the output lookup through snd_rawmidi_kernel_write(). The last output close copies and clears the visible output file under the write side, then drops the lock and releases the saved rawmidi file. Use IRQ-safe rwlock guards because event_input can also be reached from atomic sequencer delivery.

The buggy scenario involves two paths, with each column showing the order within that path:

path A label: event_input path path B label: last unuse path

  1. seq_ump_process_event() reads 1. seq_ump_client_close()

client->out_rfile.output. drops opened[STR_OUT] to zero.

  1. snd_rawmidi_kernel_write1() 2. snd_rawmidi_kernel_release()

has not yet pinned runtime. closes the output file.

  1. The writer continues using 3. close_substream() frees

the borrowed substream. substream->runtime.

This keeps the output substream and runtime alive for the full event_input write while keeping rawmidi release outside the rwlock.

KASAN reproduced this as a slab-use-after-free in snd_rawmidi_kernel_write1(), with allocation through seq_ump_use()/snd_seq_port_connect() and free through seq_ump_unuse()/snd_seq_port_disconnect().

Validation reproduced this kernel report: KASAN slab-use-after-free in snd_rawmidi_kernel_write1+0x9d/0x400 RIP: 0033:0x7f5528af837f Read of size 8 Call trace: dump_stack_lvl+0x73/0xb0 (?:?) print_report+0xd1/0x650 (?:?) srso_alias_return_thunk+0x5/0xfbef5 (?:?) __virt_addr_valid+0x1a7/0x340 (?:?) kasan_complete_mode_report_info+0x64/0x200 (?:?) kasan_report+0xf7/0x130 (?:?) snd_rawmidi_kernel_write1+0x9d/0x400 (?:?) __asan_load8+0x82/0xb0 (?:?) update_stack_state+0x1ef/0x2d0 (?:?) snd_rawmidi_kernel_write+0x1a/0x20 (?:?) seq_ump_process_event+0xd4/0x120 (sound/core/seq/seq_ump_client.c:82) __snd_seq_deliver_single_event+0x8a/0xe0 (?:?) snd_seq_deliver_from_ump+0x2b2/0xd60 (?:?) lock_acquire+0x14e/0x2e0 (?:?) find_held_lock+0x31/0x90 (?:?) snd_seq_port_use_ptr+0xa6/0xe0 (?:?) __kasan_check_write+0x18/0x20 (?:?) do_raw_read_unlock+0x32/0xa0 (?:?) _raw_read_unlock+0x26/0x50 (?:?) snd_seq_deliver_single_event+0x45c/0x4b0 (?:?) snd_seq_deliver_event+0x10d/0x1b0 (?:?) snd_seq_client_enqueue_event+0x192/0x240 (?:?) snd_seq_write+0x2cd/0x450 (?:?) apparmor_file_permission+0x20/0x30 (?:?) security_file_permission+0x51/0x60 (?:?) vfs_write+0x1ce/0x850 (?:?) __fget_files+0x12b/0x220 (?:?) lock_release+0xc8/0x2a0 (?:?) __rcu_read_unlock+0x74/0x2d0 (?:?) __fget_files+0x135/0x220 (?:?) ksys_write+0x15a/0x180 (?:?) rcu_is_watching+0x24/0x60 (?:?) __x64_sys_write+0x46/0x60 (?:?) x64_sys_call+0x7d/0x20d0 (?:?) do_syscall_64+0xc1/0x360 (arch/x86/entry/syscall_64.c:87) entry_SYSCALL_64_after_hwframe+0x77/0x7f (?:?)

AnalysisAI

Local privilege-escalation-capable memory corruption in the Linux kernel's ALSA sequencer UMP (MIDI 2.0) client code allows a local user with access to the sound sequencer to trigger a use-after-free. seq_ump_process_event() borrows client->out_rfile.output without synchronizing against the ALSA sequencer output open/close transitions, so a last-close can free the rawmidi substream and its runtime while an in-flight event_input callback is still executing snd_rawmidi_kernel_write(). The race is confirmed reproducible under KASAN as a slab-use-after-free, but there is no public exploit identified at time of analysis and EPSS risk is low (0.17%, 6th percentile).

Technical ContextAI

The affected component is the ALSA (Advanced Linux Sound Architecture) sequencer subsystem, specifically the Universal MIDI Packet (UMP / MIDI 2.0) client bridge in sound/core/seq/seq_ump_client.c. The kernel maintains a per-client output rawmidi file (client->out_rfile.output) that is populated on first-open and released on last-close via seq_ump_client_open()/seq_ump_client_close(). The event delivery path (seq_ump_process_event → snd_rawmidi_kernel_write → snd_rawmidi_kernel_write1) reads and uses this file pointer without a lock, so it can race the teardown path that drops opened[STR_OUT] to zero and calls close_substream(), which frees substream->runtime. This is a classic use-after-free / concurrency (race condition) root cause - CWE-416 (Use After Free) combined with CWE-362 (concurrent execution using shared resource without proper synchronization); the CVE input lists CWE as N/A. The CPE data identifies the affected product only generically as cpe:2.3:a:linux:linux, i.e. the mainline Linux kernel, with the ALSA sequencer built into most desktop/audio-enabled kernel configurations. The fix introduces a per-client IRQ-safe rwlock so the output file is published under the write side and held under the read side from lookup through the kernel write, keeping the substream and runtime alive for the full event_input write while releasing the rawmidi file outside the lock.

RemediationAI

Vendor-released patch: update to a fixed stable kernel - 7.1, 7.0.11, 6.18.34, 6.12.92, or 6.6.142 (or later on each branch), which add the per-client rwlock serializing UMP output teardown against event_input; the corresponding upstream commits are published at https://git.kernel.org/stable/c/8ba1c4ddbb1c67d34bb440aecb9f5690ed3f64cb and the related stable backports, with the advisory at https://nvd.nist.gov/vuln/detail/CVE-2026-64029. Where immediate kernel patching is not possible, reduce exposure by restricting access to the ALSA sequencer: unbind or blacklist the snd-seq / snd-seq-device modules (via modprobe blacklist) if MIDI sequencing is not needed, which fully closes the attack surface at the cost of breaking MIDI/UMP applications; or tighten permissions on /dev/snd/seq and remove untrusted local users from the audio group, which limits reach but breaks legitimate audio clients for those users. These are compensating controls only - the definitive fix is the kernel upgrade.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-64029 vulnerability details – vuln.today

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