The flaw is located in a service called infosvr, which runs on Asuswrt-powered routers by default. The service, which is used by a tool called the Asus Wireless Router Device Discovery Utility, listens to packets sent to the router's LAN (local area network) interface over UDP broadcast port 9999.
"This service runs with root privileges and contains an unauthenticated command execution vulnerability," security researcher Joshua Drake, who found the vulnerability, said on his GitHub account.
Drake published his findings after someone else independently found the same issue and released an exploit for it.
While attackers can't exploit this flaw from the Internet, they can use it to gain control of routers if they first compromise a device connected to them or if they manage to connect to the local network in some other way. Any local computer infected with malware can therefore become a serious threat to a router that's vulnerable to this attack.
Routers are valuable targets for attackers, because they provide them with a foothold inside networks from where they can attack other devices. A router compromise is much harder to detect than a PC infection, because there are no antivirus programs running on such devices.
By controlling routers attackers gain the ability to intercept, inspect and modify incoming and outgoing Internet traffic for all devices that connect through them. Among other things, they can strip SSL from secure traffic and use DNS hijacking techniques to misrepresent legitimate websites.
Until Asus releases firmware updates for the affected routers, there are several mitigations available, although applying some of them requires technical skills.
The simplest way to block potential exploits for this vulnerability is to create a firewall rule that blocks UDP port 9999 on the router, but unfortunately this cannot be done through the Web-based administration interface. Users will have to connect to their router via Telnet and type "iptables -I INPUT -p udp --dport 9999 -j DROP" without the quotes on the command line interface.
The command sets up a firewall rule to block UDP port 9999, but it's not persistent across reboots so the procedure needs to be repeated every time the router restarts.
Eric Sauvageau, the maintainer of Asuswrt-Merlin, a popular custom firmware for Asus routers that is based on Asus' unified Asuswrt firmware, suggested a persistent fix that involves using the non-volatile JFFS partition available on Asus routers.
Users who run Asuswrt-Merlin on their routers can simply upgrade to version 376.49_5 of the firmware, which contains a fix for this vulnerability. Howerver, it should be noted that installing custom firmware can void the device warranty and should only be done by users who understand and accept all the risks associated with this procedure, including the possibility that their device might be damaged.