La consultora de seguridad informática SEC Consult ha anunciado en su blog el descubrimiento de un fallo que afecta a routers y otros dispositivos embebidos que implementen la funcionalidad USB-over-IP mediante el servicio propietario NetUSB. En lugar de utilizar directamente el soporte USB-over-IP incluído en el kernel Linux vanilla y las utilidades del proyecto USB/IP, varios fabricantes han preferido utilizar la variante NetUSB, de la compañía taiwanesa KCodes, que proporciona una funcionalidad equivalente en forma de un módulo de kernel propietario ‘NetUSB.ko’ instalado en el router, y un software asistente (disponible para Windows y OSX) instalado en las computadoras de los usuarios. El módulo ‘NetUSB.ko’ se pone a la escucha en el puerto 20005/TCP del router y recibe peticiones de las máquinas clientes de la red local, simulando que los dispositivos USB conectados al sistema ‘embebido’ están accesibles como dispositivos locales en las máquina cliente, algo útil para compartir impresoras, escáneres, webcams… El error se produce cuando, desde un cliente, se especifica un nombre de máquina mayor de 64 caracteres: un fallo de programación en el módulo propietario genera entonces una condición de ‘stack buffer overflow’, que al funcionar como módulo del kernel multiplica su peligrosidad. Existe una prueba de concepto que produce corrupción de memoria y cuelgue del router, pero en teoría sería posible la ejecución de código. El fallo sólo es explotable desde el lado de red local, lo que supone que el atacante debería conectarse por WiFi o Ethernet al dispositivo para poder atacarlo.