CVE-2023-46574

9.8 CRITICAL

📋 TL;DR

This vulnerability allows remote attackers to execute arbitrary code on TOTOLINK A3700R routers by exploiting the FileName parameter in the UploadFirmwareFile function. Attackers can gain full control of affected devices without authentication. Only TOTOLINK A3700R routers running specific vulnerable firmware versions are affected.

💻 Affected Systems

Products:
  • TOTOLINK A3700R
Versions: v9.1.2u.6165_20211012
Operating Systems: Embedded Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the specific firmware version only. Devices with default configurations are vulnerable as the firmware upload feature is typically enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

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

🟠

Likely Case

Router takeover leading to DNS hijacking, credential harvesting, and botnet recruitment for DDoS attacks.

🟢

If Mitigated

Limited impact if devices are behind firewalls with strict inbound filtering and firmware uploads disabled.

🌐 Internet-Facing: HIGH - Directly exploitable from internet without authentication on exposed devices.
🏢 Internal Only: MEDIUM - Requires attacker to have network access but still exploitable without credentials.

🎯 Exploit Status

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

Proof of concept available in GitHub repository. Exploitation requires sending crafted HTTP request to vulnerable endpoint.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch available. Check TOTOLINK website for firmware updates. If update available: 1. Download latest firmware from vendor site 2. Access router admin interface 3. Navigate to firmware update section 4. Upload new firmware file 5. Wait for reboot

🔧 Temporary Workarounds

Disable Remote Management

all

Prevent external access to router administration interface

Access router admin panel → System Tools → Remote Management → Disable

Block Firmware Upload Endpoint

linux

Use firewall rules to block access to vulnerable endpoint

iptables -A INPUT -p tcp --dport 80 -m string --string "UploadFirmwareFile" --algo bm -j DROP
iptables -A INPUT -p tcp --dport 443 -m string --string "UploadFirmwareFile" --algo bm -j DROP

🧯 If You Can't Patch

  • Isolate affected routers in separate VLAN with strict firewall rules
  • Implement network segmentation to limit lateral movement from compromised routers

🔍 How to Verify

Check if Vulnerable:

Check router firmware version in admin interface under System Status or System Tools → Firmware Upgrade

Check Version:

curl -s http://router-ip/cgi-bin/cstecgi.cgi -X POST -d '{"topicurl":"setting/getMaintenanceInfo"}' | grep Firmware

Verify Fix Applied:

Verify firmware version has changed from v9.1.2u.6165_20211012 to newer version

📡 Detection & Monitoring

Log Indicators:

  • HTTP POST requests to /cgi-bin/cstecgi.cgi with UploadFirmwareFile parameter
  • Unusual firmware upload activity
  • System reboot logs after firmware upload

Network Indicators:

  • HTTP traffic to router on port 80/443 containing UploadFirmwareFile string
  • Unexpected outbound connections from router

SIEM Query:

source="router_logs" AND ("UploadFirmwareFile" OR "cstecgi.cgi") AND method="POST"

🔗 References

📤 Share & Export