15 уязвимостей в USB-драйверах, поставляемых в ядре Linux

Андрей Коновалов из компании Google опубликовал отчёт о выявлении очередных 15 уязвимостей (CVE-2019-19523 — CVE-2019-19537) в USB-драйверах, предлагаемых в ядре Linux. Это третья порция проблем, найденных при проведении fuzzing-тестирования USB-стека в пакете syzkaller — ранее данный исследователь уже сообщал о наличии 29 уязвимостей.

На этот раз в списке включены только уязвимости, вызванные обращением у уже освобождённым областям памяти (use-after-free) или приводящие к утечке данных из памяти ядра. Проблемы, которые могут использоваться для отказа в обслуживании в отчёт не включены. Уязвимости потенциально могут быть эксплуатируемы при подключении к компьютеру специально подготовленных USB-устройств. Исправления для всех упомянутых в отчёте проблем уже включены в состав ядра, но некоторые не вошедшие в отчёт ошибки пока остаются неисправленными.

Наиболее опасные уязвимости класса «use-after-free» устранены в драйверах adutux, ff-memless, ieee802154, pn533, hiddev, iowarrior, mcba_usb, yurex. Под CVE-2019-19532 дополнительно сведены 14 уязвимостей в HID-драйверах, вызванные ошибками, допускающими запись за пределы границы буфера (out-of-bounds write). В драйверах ttusb_dec, pcan_usb_fd и pcan_usb_pro найдены проблемы, приводящие к утечке данных из памяти ядра. В коде USB-стека для работы с символьными устройствами также выявлена проблема (CVE-2019-19537), связанная с состоянием гонки (race condition).

Также можно отметить выявление трёх уязвимостей (CVE-2019-14895, CVE-2019-14896, CVE-2019-14897) в драйвере для беспроводных чипов Marvell, которая может привести к переполнению буфера. Атака может быть совершена удалённо через отправку определённым образом оформленных кадров при соединении с беспроводной точкой доступа злоумышленника. В качестве наиболее вероятной угрозы отмечается удалённый отказ в обслуживании (крах ядра), но не исключается и возможность выполнения кода в системе.

Источник: http://www.opennet.ru/opennews/art.shtml?num=51974