در FreeBSD یک آسیبپذیری در پشته USB (CVE-2020-7456) امکان اجرای کد در سطح هسته یا فضای کاربر را هنگام اتصال یک دستگاه USB مخرب به سیستم فراهم میکند. توصیفگرهای دستگاه USB HID (دستگاه رابط انسانی) میتوانند وضعیت فعلی را قرار داده و بازیابی کنند و به این ترتیب امکان گروهبندی توضیحات عناصر در گروههای چند سطحی را فراهم میکنند. FreeBSD حداکثر از چهار سطح بازیابی از این دست پشتیبانی میکند. اگر هنگام پردازش همان عنصر HID، سطح بازیابی نشود، به یک مکان حافظه نامعتبر دسترسی پیدا میشود. این مشکل در FreeBSD 11.3-RELEASE-p10 و 12.1-RELEASE-p6 برطرف شده است. به عنوان یک راه حل، تنظیم پارامتر "sysctl hw.usb.disable_enumeration=1" توصیه میشود.
این آسیبپذیری توسط اندی نگوین از گوگل کشف شد و با مشکل دیگری که اخیراً کشف شده است، همپوشانی ندارد. محققان دانشگاه پردو و École Polytechnique Fédérale de Lausanne ابزاری به نام USBFuzz توسعه دادهاند که یک دستگاه USB خراب را برای فازینگ درایورهای USB شبیهسازی میکند. USBFuzz قرار است به زودی منتشر شود. . При помощи нового инструмента было выявлено 26 уязвимостей, из которых 18 в Linux, 4 в Windows, 3 в macOS и одна во FreeBSD. Детали про данные проблемы пока не раскрываются, упомянуто лишь, что для 10 уязвимостей получены CVE-идентификаторы, а проявляющиеся в Linux 11 проблем уже исправлены. Похожую технику fuzzing-тестирования آندری کونووالوف از گوگل، که طی چند سال گذشته в USB-стеке Linux.
منبع: opennet.ru
