В ядре Linux устранена следующая уязвимость:
ALSA:usx2y:us144mkii: исправлена работа UAF при отключении
tascam_disconnect() отменяет capture_work и MIDI_in_work перед
usb_kill_anchored_urbs() убивает URB захвата/MIDI-входа. Эти URB
самостоятельно выполнить повторную отправку, а их обработчики завершения перепланируют работу. URB, который завершается в небольшом окне между cancel_work_sync() и
usb_kill_anchored_urbs() поэтому возобновляет работу после ее единственного
отменить.
Ничто не отменяет его снова, прежде чем snd_card_free() освободит
структура tascam, приватная для карты, поэтому обработчик работы затем запускается на освобожденном
память. Уничтожьте привязанные URB перед отменой работы; как только работа будет
отменено, ни один оставшийся URB не может выполнить повторную активацию.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: ALSA: usx2y: us144mkii: fix work UAF on disconnect tascam_disconnect() cancels capture_work and midi_in_work before usb_kill_anchored_urbs() kills the capture/MIDI-in URBs. Those URBs self-resubmit, and their completion handlers reschedule the work. A URB that completes in the small window between cancel_work_sync() and usb_kill_anchored_urbs() therefore re-arms the work after its only cancel. Nothing cancels it again before snd_card_free() frees the card-private tascam structure, so the work handler then runs on freed memory. Kill the anchored URBs before cancelling the work; once the work is cancelled no remaining URB can complete to re-arm it.