CVE-2021-20140

8.8 HIGH

📋 TL;DR

An unauthenticated command injection vulnerability in Gryphon Tower routers allows attackers on the same network to execute arbitrary commands as root. This affects Gryphon Tower routers with the vulnerable controller_server service running on port 9999. Attackers can gain complete control of the device without authentication.

💻 Affected Systems

Products:
  • Gryphon Tower routers
Versions: All versions prior to firmware update addressing CVE-2021-20140
Operating Systems: Embedded Linux on Gryphon routers
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default configuration of controller_server service on port 9999

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of router with root access, enabling network traffic interception, credential theft, lateral movement to other devices, and persistent backdoor installation.

🟠

Likely Case

Router takeover leading to DNS hijacking, credential harvesting, and use as pivot point for attacking other devices on the network.

🟢

If Mitigated

Limited impact if network segmentation isolates routers from untrusted devices and proper access controls are implemented.

🌐 Internet-Facing: LOW
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires network access to port 9999, which is typically only accessible on local network

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Firmware updates released by Gryphon to address this vulnerability

Vendor Advisory: https://www.tenable.com/security/research/tra-2021-51

Restart Required: Yes

Instructions:

1. Log into Gryphon router admin interface
2. Navigate to firmware update section
3. Check for and apply latest firmware
4. Reboot router after update completes

🔧 Temporary Workarounds

Block port 9999 at network perimeter

linux

Prevent external access to vulnerable service by blocking port 9999 at firewall

iptables -A INPUT -p tcp --dport 9999 -j DROP

Disable controller_server service

linux

Stop and disable the vulnerable service if not required

systemctl stop controller_server
systemctl disable controller_server

🧯 If You Can't Patch

  • Segment router on isolated network VLAN to limit attack surface
  • Implement strict network access controls to restrict access to port 9999

🔍 How to Verify

Check if Vulnerable:

Check if controller_server service is listening on port 9999: netstat -tlnp | grep 9999

Check Version:

Check router admin interface for firmware version or use vendor-specific CLI commands

Verify Fix Applied:

Verify service is no longer vulnerable by checking firmware version and testing with known exploit

📡 Detection & Monitoring

Log Indicators:

  • Unusual connections to port 9999
  • Suspicious command execution in system logs
  • Unexpected process creation

Network Indicators:

  • Malformed packets to port 9999
  • Command injection patterns in network traffic

SIEM Query:

source_port:9999 AND (payload_contains:"||" OR payload_contains:";" OR payload_contains:"$")

🔗 References

📤 Share & Export