Last year I discovered multiple vulnerabilities in NETGEAR products. Now that these vulnerabilities have gone through the disclosure process and have been patched we can discuss the technical details.
TWSL2018-002: Password Recovery and File Access on Some Routers and Modem Routers
Trustwave SpiderLabs Advisory: https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2018-002/?fid=10670
Some routers allow arbitrary file reading from the device provided that the path to file is known. Proof-of-concept for Nighthawk X8 running firmware 220.127.116.11 or earlier:
curl -d "id=304966648&next_file=cgi-bin/../../tmp/mnt/usb0/part1/README.txt" http://192.168.1.1/genie_restoring.cgi?id=304966648
The above will fetch README.txt file located on a USB thumb drive inserted into the router. Total of 17 products are affected. Specific models are listed in the Advisory notes.
TWSL2018-003: Finding 1: Post-Authentication Command Injection on Some Routers and ModemRouters
Trustwave SpiderLabs Advisory: https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2018-003/?fid=10671
This one affects six products per NETGEAR's advisory. What happens there is root level OS command execution via the device_name parameter on the lan.cgi page:
curl -d "action=Apply&device_name=A%22+%26%26+touch+%2Ftmp%2Fjimmers+%26%26+echo+%22B&sysLANIPAddr1=192&sysLANIPAddr2=168&sysLANIPAddr3=1&sysLANIPAddr4=1&sysLANSubnetMask1=255&sysLANSubnetMask2=255&sysLANSubnetMask3=255&sysLANSubnetMask4=0&rip_direction=1&sysRIPVersion=Disabled&dhcp_server=dhcp_server&sysPoolStartingAddr4=2&sysPoolFinishAddr4=254&select=-1&arp_enable=disable&ipmac_token=0&dev_name=R8500mge&lan_ipaddr=192.168.1.1&lan_netmask=255.255.255.0&rip_enable=0&rip_multicast=1" http://192.168.1.1/lan.cgi?id=988337b27ba1f3cdc280e454860f8b10d84e42da
Note that this attack requires authentication.
TWSL2018-003: Finding 2: Authentication Bypass on Some Routers or Modem Routers
This also affects large set of products (17 total) and is trivial to exploit. Authentication is bypassed if "&genie=1" is found within the query string.
TWSL2018-003: Chained Attack: Command Injection on Some Routers and Modem Routers
The same set of products is affected. This is a three-stage attack leveraging three separate issues: CSRF token recovery vulnerability (here's a tool to help: https://github.com/SpiderLabs/advisories-poc/blob/master/TWSL2018-003/csrf.c) and the two findings in TWSL2018-003. As a result, any user connected to the router can run OS commands as root on the device without providing any credentials.
TWSL2018-004: Command Injection Vulnerability on D7000, EX6200v2, and Some Routers
Trustwave SpiderLabs Advisory: https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2018-004/?fid=10672
Only 6 products are affected, this allows to run OS commands as root during short time window when WPS is activated. To prove, add the following line to the /etc/wpa_supplicant.conf file on your Linux box and join WPS initialed on the router.
device_name=MR" /sbin/reboot "
Observe the router reboot! This happens because internal code executed as part of WPS fails to sanitize hostnames.
Trustwave SpiderLabs has worked with NETGEAR through our responsible disclosure process to make sure that these vulnerabilities are addressed. We'd also like to thank NETGEAR for their responsive and communicative PSIRT team. It's obvious that their participation in bug bountieshas helped them improve their internal process for addressing issues like these.
Please check the NETGEAR advisory pages to find the firmware that applies to your router model and make sure that your devices are patched if they are affected.