Команда исследователей из Университета Пердью (США) и Швейцарского федерального технологического института в Лозанне обнаружила 26 уязвимостей в стеке драйверов USB, используемых в таких операционных системах, как Linux, macOS, Windows и FreeBSD. Проблемы были выявлены с помощью разработанного специалистами инструмента под названием USBFuzz. Инструмент позволяет отправлять большое количество некорректной или случайной информации в качестве входных данных для других программ, а затем исследователи безопасности анализируют поведение тестируемого программного обеспечения с целью обнаружить уязвимости. Эксперты протестировали USBFuzz на 9 последних версиях ядра Linux (v4.14.81, v4.15, v4.16, v4.17, v4.18.19, v4.19, v4.19.1, v4.19.2 и v4.20-rc2), версии FreeBSD 12, версии macOS 10.15 (Catalina) и версиях Windows 8 и 10. Исследователи обнаружили одну уязвимость в FreeBSD, три в MacOS и четыре в Windows 8 и Windows 10. Больше всего проблем было выявлено в Linux — 18. Шестнадцать из них содержались в различных подсистемах Linux (USB Core, USB Sound и net-work), одна была связана с драйвером хост-контроллера Linux USB, а последняя — с драйвером USB-камеры. Исследовательская группа сообщила о своих находках разработчикам ядра Linux, и они выпустили 11 исправлений для уязвимостей в прошлом году. Специалисты намерены опубликовать USBFuzz на GitHub в качестве проекта с открытым исходным кодом после выступления на конференции Usenix.