В FreeBSD уязвимост в USB стека (CVE-2020-7456), която позволява изпълнение на код на ниво ядрo или в пространството на потребителя при свързване на злонамерено USB устройство към системата. Дескрипторите на USB HID (Human Interface Device) могат да поставят и извлекат текущото състояние, позволявайки обединяване на описанията на елементи в многоуровневи групи. FreeBSD поддържа до 4 подобни нива на извличане. Ако нивото не е възстановено при обработка на същия HID елемент, се извършва достъп до неправилна област на паметта. Проблемът е отстранен в обновленията FreeBSD 11.3-RELEASE-p10 и 12.1-RELEASE-p6. Като временно решение за защита се препоръчва да се зададе параметър „sysctl hw.usb.disable_enumeration=1“.
Уязвимостта е открита от Andy Nguyen от Google и не е свързана с друг проблем, наскоро от изследователи от Университета Пърдю и Федералната политехническа школа в Лозана. Тези изследователи разработиха инструмента USBFuzz, който симулира неправилно работещо USB устройство за тестове на USB драйвери. USBFuzz планира скоро . С новия инструмент бяха установени 26 уязвимости, от които 18 в Linux, 4 в Windows, 3 в macOS и една във FreeBSD. Детайли относно тези проблеми все още не са разкрити, само е споменато, че за 10 уязвимости са получени CVE идентификатори, а 11 проблеми в Linux вече са отстранени. Подобна техника за тестване с fuzzing Андрей Коновалов от Google, който през последните няколко години в USB стека на Linux.
Източник: opennet.ru
