W FreeBSD Luka w stosie USB (CVE-2020-7456), która umożliwia wykonanie kodu na poziomie jądra lub w przestrzeni użytkownika po podłączeniu złośliwego urządzenia USB do systemu. Deskryptory urządzeń USB HID (Human Interface Device) mogą wprowadzać i wyciągać bieżący stan, co pozwala na grupowanie opisów elementów w wielopoziomowe grupy. FreeBSD obsługuje do 4 takich poziomów wyciągania. Jeśli poziom nie został przywrócony podczas przetwarzania tego samego elementu HID, następuje odwołanie do nieprawidłowego obszaru pamięci. Problem rozwiązano w aktualizacjach FreeBSD 11.3-RELEASE-p10 i 12.1-RELEASE-p6. Jako sposób obejścia zaleca się ustawienie parametru „sysctl hw.usb.disable_enumeration=1”.
Luka została wykryta przez Andy'ego Nguyena z Google i nie pokrywa się z innym problemem, który niedawno został zbadany przez badaczy z Uniwersytetu Purdue i Federalnej Politechniki w Lozannie. Ci badacze opracowali narzędzie USBFuzz, które symuluje nieprawidłowo działające urządzenie USB do testów fuzzingowych sterowników USB. USBFuzz ma być wkrótce . Dzięki nowemu narzędziu wykryto 26 luk, z czego 18 w Linux, 4 w Windows, 3 w macOS i jedna w FreeBSD. Szczegóły dotyczące tych problemów nie zostały jeszcze ujawnione, wspomniano jedynie, że dla 10 luk przyznano identyfikatory CVE, a 11 problemów występujących w Linux już zostało naprawionych. Podobna technika testowania fuzzingowego Andriej Konowałow z Google, który w ciągu ostatnich kilku lat w stosie USB Linux.
Źródło: opennet.ru
