Как вы можете знать, некоторые производители роутеров включают в свою продукцию возможность использовать подключенные в роутер USB-устройства через TCP/IP, используя ПО KCodes NetUSB и свой собственный протокол. Технология позволяет подключать любые типы устройств: принтеры, флешки, веб-камеры, клавиатуры, звуковые карты, т.к. просто инкапсулирует USB в IP.
Специалисты из SEC Consult обнаружили вопиющую уязвимость на всех роутерах, поддерживающих данную технологию — переполнение буфера на стеке в режиме ядра, которое может привести к удаленному выполнению кода.
Модуль ядра NetUSB.ko, который прослушивает порт 20005, даже если в роутер не подключено ни одного USB-устройства, для аутентификации использует шифрование AES со статическим ключом (который, конечно же, есть и в ПК-клиенте), что уже позволяет злоумышленнику удаленно воспользоваться подключенным USB-устройством. Однако, главная уязвимость заключается в фиксированном размере буфера для имени компьютера в функции run_init_sbus(), принимающего не более 64 символов. Переполнение этого буфера и приводит к переполнению стека в ядре
Специалисты из SEC Consult обнаружили вопиющую уязвимость на всех роутерах, поддерживающих данную технологию — переполнение буфера на стеке в режиме ядра, которое может привести к удаленному выполнению кода.
Модуль ядра NetUSB.ko, который прослушивает порт 20005, даже если в роутер не подключено ни одного USB-устройства, для аутентификации использует шифрование AES со статическим ключом (который, конечно же, есть и в ПК-клиенте), что уже позволяет злоумышленнику удаленно воспользоваться подключенным USB-устройством. Однако, главная уязвимость заключается в фиксированном размере буфера для имени компьютера в функции run_init_sbus(), принимающего не более 64 символов. Переполнение этого буфера и приводит к переполнению стека в ядре