LINUX.ORG.RU

Критическая уязвимость в модуле NetUSB, используемом в SOHO-маршрутизаторах

 netusb, , , ,


0

2

Опубликована информация о критической уязвимости в NetUSB, проприетарном продукте, развиваемом тайваньской компанией KCodes. NetUSB представляет собой модуль ядра Linux, который запускает веб-сервер на 20005 порту и предоставляет возможность проброса USB-устройств по сети.

Данный модуль используется в прошивках многих популярных SOHO-маршрутизаторов и работает постоянно, даже если к маршрутизатору не подключено ни одно USB-устройство. При обращении к маршрутизатору клиент NetUSB, выполненный в виде приложения для Windows и OS X, посылает имя компьютера и опционально может указать его длину. Из-за отсутствия проверки в драйвере, указав длину имени, превышающую 64 символа, злоумышленник может вызвать переполнение буфера, и организовать выполнение кода с правами ядра.

Изучив модуль подробнее, исследователи обнаружили упоминание 26 компаний — поставщиков сетевого оборудования. Среди них такие производители, как Netgear, D-Link, TP-Link, Trendnet и Zyxel. Уже обнаружены 92 уязвимые модели оборудования. Различные производители называют эту функцию по-своему: ReadyShare (NetGear) “print sharing”, “USB share port”. В ряде случаев возможность отключения данного функционала не предусмотрена и единственным выходом остаётся блокирование запросов на 20005 порт

Отчасти проблема нивелируется тем, что, в большинстве своём, запросы NetUSB принимаются лишь из локальной сети, однако устройства некоторых производителей принимают запросы и из глобальной сети.

Исследователи обнаружили уязвимость в феврале 2015 года и сразу связались с компанией KCodes, предоставив им все необходимые сведения и прототип эксплоита. Из полученных ответов сложилось впечатление, что специалисты компании плохо поняли суть уязвимости, а впоследствии и вовсе перестали отвечать. После этого исследователи обратились к производителям сетевого оборудования. Компания TP-LINK признала проблему и собирается выпустить обновлённые прошивки для своих продуктов. Ответ NETGEAR гласил, что уязвимость не поддаётся исправлению, поскольку нет возможности закрыть отдельный порт или отключить соответствующий функционал. Прочие производители отреагировали лишь после публикации CERT/CC.

Прототип эксплоита пока не опубликован, решено дать производителям время для обновления прошивок.

>>> Подробности

anonymous

Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 3)

Ответ на: комментарий от anonymous

Лишняя строчка в резюме будет если продукт твоей работы уйдет в upstream крупного проекта, типа ядра или OpenWRT который поддерживается коммьюнити, где делается ревью и на который можно сослаться. И это намного лучше чем сделать очередную никому ненужную г***сборку с нескучными обоями и забросить ее через полгода, так как результат твоей работы не сгинет и не станет бесполезным тогда, когда у тебя не будет на это времени.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 2)
Ответ на: комментарий от ncrmnt

Лишняя строчка в резюме будет если продукт твоей работы уйдет в upstream крупного проекта, типа ядра или OpenWRT который поддерживается коммьюнити, где делается ревью и на который можно сослаться. И это намного лучше чем сделать очередную никому ненужную г***сборку с нескучными обоями и забросить ее через полгода, так как результат твоей работы не сгинет и не станет бесполезным тогда, когда у тебя не будет на это времени.

Что случилось? Ты ведь слал в OpenWRT патчи. Они их сгноили и ты разочаровался? Не играет ли OpenWRT в пользу некоторых вендоров и поэтому предвзято отбирает какие модели будут поддерживаться, а какие нет?

anonymous
()
Ответ на: комментарий от anonymous

Что случилось? Ты ведь слал в OpenWRT патчи. Они их сгноили и ты разочаровался? Не играет ли OpenWRT в пользу некоторых вендоров и поэтому предвзято отбирает какие модели будут поддерживаться, а какие нет?

Ты сейчас вообще про что? Те патчи что я слал в OpenWRT приняли без проблем, емнип первый еще году в 2008-9м.

ncrmnt ★★★★★
()
Ответ на: комментарий от Infra_HDC

Речь про другое. Грубо говоря, в твоём одноплатнике есть один разъём Ethernet, а подключить нужно два кабеля - один идёт к провайдеру, другой в локальную сеть.

h31 ★★★★
()

посылает имя компьютера и опционально может указать его длину

Где узнать длину компьютера?

anonymous
()
Ответ на: комментарий от h31

А, понял о чем речь. Да, я так делал через VLAN работает, проверял. На нетбуке с одним LAN-разъемом. Рабочее решение, но нужен свич управляемый. У меня был маленький восьмипортовый от HP который умеет.

Infra_HDC ★★★★★
()
Ответ на: комментарий от ncrmnt

Ты сейчас вообще про что? Те патчи что я слал в OpenWRT приняли без проблем, емнип первый еще году в 2008-9м.

Ну. А анонимус выше предложил тебе слать туда свои достижения и дальше, потому что в бложике твоём хрен чо найдёшь. А ты его куда послал?

anonymous
()
Ответ на: комментарий от anonymous

Для вайфая сойдет. По крайней мере там не хаб, а отдельный EHCI на второй порт емнип. Про OTG при работе на мейнлайне пока придется забыть (без кровавого патчинга никак). Меня там больше слово broadcom в названии свитча беспокоит.

ncrmnt ★★★★★
()
Ответ на: комментарий от anonymous

Ну. А анонимус выше предложил тебе слать туда свои достижения и дальше, потому что в бложике твоём хрен чо найдёшь. А ты его куда послал?

Они и так туда отправляется с некоторой периодичностью, как и в мейнлайн линукса. А что не подходит под пункт один и два оседает у меня на github'е.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)

А разве штатный линуксовый USB-IP не юзабелен, почему все выбрали проприетарщину?

Rupricht ★★
()

Из-за отсутствия проверки в драйвере, указав длину имени, превышающую 64 символа, злоумышленник может вызвать переполнение буфера, и организовать выполнение кода с правами ядра.

Нельзя дуракам писать на C.

anonymous
()
Ответ на: комментарий от Lothlorien

Во-первых нужно купить этот самый коммутатор. Во-вторых нужно настроить маршрутизацию. Мне вот лень, если честно.

h31 ★★★★
()

Из-за отсутствия проверки в драйвере, указав длину имени, превышающую 64 символа, злоумышленник может вызвать переполнение буфера

Я так понимаю, фикс данной дыры делается в одну строчку или заменой sprintf на snprintf (или на их аналоги в ядре)?

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Проблема в том, что разработчики кода решили забить на неё, а производители оборудования без исходников пофиксить не могут.

anonymous
()
Ответ на: комментарий от reprimand

я встречал wifi-маршрутизатор tenda в прошивке которого даже не предусматривался админский пароль

snaf ★★★★★
()
Ответ на: комментарий от h31

Во-первых нужно купить этот самый коммутатор

Это относительно недорого (если мы говорим, например, о HP Procurve 1800-й серии).

Во-вторых нужно настроить маршрутизацию.

А в SOHO-маршрутизаторе не надо её настраивать?

Lothlorien ★★★
()
Ответ на: комментарий от saybrax

Быть может. Но тогда ничего не выйдет вынюхать. UDP - протокол без установления соединения. у меня он на все порты роутера говорит, что открыта. и даже на локалхосте открыто типо.

Infra_HDC ★★★★★
()
Ответ на: комментарий от saybrax

Нигде не увидел что это именно udp. Но если это так, то Ваш вариант не подходит, на любой хост (не работающий тоже) и порт будет один и тот же ответ.
Скорее уж тогда правильней будет использовать nmap.

anc ★★★★★
()
Ответ на: комментарий от saybrax

В данном случае, веб-сервер поднимается этим модулем на TCP-порту.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.