CVE-2026-90207

ALSA: seq: midi: Serialize input teardown with event_input

State
Published
Severity
7.8 High
Published
Sep 17, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

ALSA: seq: midi: Serialize input teardown with event_input

snd_midi_input_event() must not be running while a rawmidi substream is closing, since this can lead to the trigger state becoming out-of-step through this sequence in snd_rawmidi_input_trigger():

snd_rawmidi_input_trigger(up=0) snd_midi_input_event() -> snd_rawmidi_kernel_read() -> snd_rawmidi_input_trigger(up=1) -> cancel_work_sync()

which ends with the underlying device being active unexpectedly.

When this is called from close_substream(), further input can re-trigger the input event leaving it running after rawmidi_release_priv() has set rfile->rmidi to NULL which leads to:

Unable to handle kernel NULL pointer dereference at virtual address 00000000000000b0 Call trace: snd_midi_input_event+0x3c/0x134 [snd_seq_midi] (P) snd_rawmidi_input_event_work+0x1c/0x2c process_one_work+0x150/0x3a4 worker_thread+0x190/0x318

Apply a similar approach to commit ef7607ab1c8ad ("ALSA: seq: midi: Serialize output teardown with event_input") which fixed the same issue in the output direction, but updated to use RCU following Takashi Iwai's proposed follow-on patch [1].

With this change in place, midisynth_unsubscribe() clears the input file so snd_midi_input_event() will not re-trigger the stream and will be quiesced by the cancel_work_sync() in snd_rawmidi_input_trigger().

[1] https://lore.kernel.org/linux-sound/20260813144224.753399-1-tiwai@suse.de/

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before de76a2b47582cd6dba2e15f024681bf377ecc94aAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 89d986897aff7275b42e075e556731b8353366afAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 6290afaae54c7a9fa3bca3b4d5433e6d83e8669dAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 210c193a9ef1312fab153948c6928e4cfaa1f03bAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 282a3ef9e4b63b2f6823bbbb3c1a90b002cdaf12Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 403f7f3ad3808a0096d84cf228fab68dc253fd9dAffected
LinuxLinux
  • 2.6.12Affected
  • before 2.6.12Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.