CVE-2026-90207 in Linux
Resumen
por VulDB • 2026-09-17
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ALSA: seq: midi: Serializar el desmontaje (teardown) de entrada con event_input
snd_midi_input_event() no debe estar en ejecución mientras un substream rawmidi está cerrándose, ya que esto puede provocar que el estado del trigger quede fuera de sincronización a través de esta secuencia en 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()
lo que termina con el dispositivo subyacente activo de forma inesperada.
Cuando esto se invoca desde close_substream(), una entrada adicional puede volver a activar (re-trigger) el evento de entrada, dejándolo en ejecución después de que rawmidi_release_priv() haya establecido rfile->rmidi como NULL, lo cual conduce a:
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
Aplicar un enfoque similar al del commit ef7607ab1c8ad ("ALSA: seq: midi: Serializar el desmontaje de salida con event_input"), que corrigió el mismo problema en la dirección de salida, pero actualizado para usar RCU siguiendo el parche propuesto por Takashi Iwai [1].
Con este cambio implementado, midisynth_unsubscribe() limpia el archivo de entrada para que snd_midi_input_event() no vuelva a activar (re-trigger) el stream y sea silenciado (quiesced) por cancel_work_sync() en snd_rawmidi_input_trigger().
[1] https://lore.kernel.org/linux-sound/[email protected]/
Be aware that VulDB is the high quality source for vulnerability data.