CVE-2026-74388

CVE-2026-74388

High · published August 15, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
2.0
In the wild
Unconfirmed
What it is

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

ALSA: seq: oss: Fix UAF at handling events with embedded SysEx data

The OSS sequencer processes the input MIDI bytes into a sequencer

event to be dispatched later (in snd_seq_oss_midi_putc() called from

snd_seq_oss_process_event()). When it's a SysEx data, the event

record contains data.ext.ptr pointer to the original SysEx bytes, and

the referred data is copied into the pool afterwards at dispatching.

The problem is that, if the sequencer port gets closed concurrently

before the dispatch, the OSS sequencer core also releases the

resources (in snd_seq_oss_midi_check_exit_port()), while the pending

event may hold a stale pointer, eventually leading to a UAF at a later

dispatch.

Fortunately, there is already a refcounting mechanism (snd_use_lock_t)

for the OSS MIDI device access, and for addressing the issue above, we

just need to extend the refcount until the event gets dispatched.

This patch extends snd_seq_oss_process_event() to give back the

refcount object, which is in turn released after calling the sequencer

dispatcher with the given event in the caller side.

According to the original report, KASAN report as below:

KASAN slab-use-after-free in snd_seq_event_dup+0x40c/0x470

RIP: 0033:0x7f2cb66a6340

Read of size 6

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_seq_event_dup+0x40c/0x470 (?:?)

kasan_check_range+0x10c/0x1c0 (?:?)

__asan_memcpy+0x27/0x70 (?:?)

snd_seq_event_dup+0x9/0x470 (?:?)

snd_seq_client_enqueue_event+0x139/0x240 (?:?)

_raw_spin_unlock_irqrestore+0x4b/0x60 (?:?)

snd_seq_kernel_client_enqueue+0x102/0x120 (?:?)

snd_seq_oss_write+0x416/0x4e0 (?:?)

apparmor_file_permission+0x20/0x30 (?:?)

odev_write+0x3b/0x60 (?:?)

vfs_write+0x1ce/0x850 (?:?)

lock_release+0xc8/0x2a0 (?:?)

__kasan_check_write+0x18/0x20 (?:?)

__mutex_unlock_slowpath+0x129/0x510 (?:?)

ksys_write+0xe1/0x180 (?:?)

mutex_unlock+0x16/0x20 (?:?)

odev_ioctl+0x65/0xc0 (?:?)

__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 (?:?)

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00125 · 2.0th percentile
Published
2026-08-15T10:22Z
References (5)
EPSS history
Timeline
  • 15 AUG 05:59Z
    ALSA: seq: oss: Fix UAF at handling events with embedded SysEx data
    cvelistv5