CVE-2023-50987

9.8 CRITICAL

📋 TL;DR

This vulnerability allows remote attackers to execute arbitrary code on Tenda i29 routers by sending specially crafted requests to the sysTimeInfoSet function. Attackers can exploit this buffer overflow to gain full control of affected devices. All users running vulnerable firmware versions are affected.

💻 Affected Systems

Products:
  • Tenda i29
Versions: v1.0 V1.0.0.5
Operating Systems: Embedded Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the web management interface which is typically enabled by default.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete device compromise leading to persistent backdoor installation, network traffic interception, lateral movement to other devices, and botnet recruitment.

🟠

Likely Case

Remote code execution allowing attackers to modify router settings, intercept traffic, or use the device as a pivot point for further attacks.

🟢

If Mitigated

Limited impact if devices are behind firewalls with strict inbound filtering and network segmentation.

🌐 Internet-Facing: HIGH - Routers are typically internet-facing devices with web interfaces accessible from WAN.
🏢 Internal Only: MEDIUM - Still vulnerable to internal attackers or compromised internal systems.

🎯 Exploit Status

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

Public proof-of-concept available on GitHub demonstrates exploitation. Buffer overflow in time parameter allows straightforward exploitation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: http://tenda.com

Restart Required: Yes

Instructions:

1. Check Tenda website for firmware updates
2. Download latest firmware for i29 model
3. Access router web interface
4. Navigate to System Tools > Firmware Upgrade
5. Upload and apply new firmware
6. Reboot router

🔧 Temporary Workarounds

Disable Remote Management

all

Prevent external access to router web interface

Access router web interface > System Tools > Remote Management > Disable

Network Segmentation

linux

Isolate router management interface to trusted network

iptables -A INPUT -p tcp --dport 80 -s TRUSTED_NETWORK -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP

🧯 If You Can't Patch

  • Place router behind firewall with strict inbound filtering
  • Implement network monitoring for exploit attempts

🔍 How to Verify

Check if Vulnerable:

Check firmware version in router web interface: System Status > Firmware Version

Check Version:

curl -s http://router-ip/status.cgi | grep firmware

Verify Fix Applied:

Verify firmware version is newer than V1.0.0.5

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /goform/sysTimeInfoSet
  • Large time parameter values in HTTP requests
  • Router reboot or configuration changes

Network Indicators:

  • HTTP POST requests with oversized time parameters
  • Traffic to router management port from unusual sources

SIEM Query:

source="router_logs" AND (uri_path="/goform/sysTimeInfoSet" OR time_parameter_length>100)

🔗 References

📤 Share & Export