CVE-2026-3696
📋 TL;DR
This CVE describes a remote command injection vulnerability in Totolink N300RH routers. Attackers can execute arbitrary operating system commands by manipulating the setWiFiWpsConfig function in the CGI handler. All users of affected Totolink N300RH routers with vulnerable firmware versions are at risk.
💻 Affected Systems
- Totolink N300RH
⚠️ Manual Verification Required
This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.
Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).
🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Complete router compromise allowing attackers to install persistent backdoors, intercept network traffic, pivot to internal networks, or use the router as part of a botnet.
Likely Case
Router takeover enabling network traffic monitoring, DNS hijacking, credential theft, and lateral movement to connected devices.
If Mitigated
Limited impact if routers are behind firewalls with strict inbound filtering, though internal threats remain possible.
🎯 Exploit Status
The exploit has been made public on GitHub and requires minimal technical skill to execute against vulnerable devices.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: https://www.totolink.net/
Restart Required: Yes
Instructions:
1. Check Totolink website for firmware updates
2. Download latest firmware for N300RH
3. Access router admin interface
4. Navigate to firmware update section
5. Upload and apply new firmware
6. Reboot router
🔧 Temporary Workarounds
Disable WPS functionality
allDisable WiFi Protected Setup (WPS) feature to potentially block exploitation via the vulnerable setWiFiWpsConfig function
Restrict CGI access
linuxBlock external access to /cgi-bin/cstecgi.cgi via firewall rules
iptables -A INPUT -p tcp --dport 80 -m string --string "/cgi-bin/cstecgi.cgi" --algo bm -j DROP
iptables -A INPUT -p tcp --dport 443 -m string --string "/cgi-bin/cstecgi.cgi" --algo bm -j DROP
🧯 If You Can't Patch
- Isolate affected routers in separate network segments with strict firewall rules
- Implement network monitoring for unusual CGI requests and command execution patterns
🔍 How to Verify
Check if Vulnerable:
Check router firmware version via admin interface or attempt safe test of CGI endpoint with controlled payload
Check Version:
curl -s http://router-ip/cgi-bin/cstecgi.cgi | grep -i version || check router admin interface
Verify Fix Applied:
Verify firmware version has been updated beyond vulnerable version and test that command injection no longer works
📡 Detection & Monitoring
Log Indicators:
- Unusual CGI requests to /cgi-bin/cstecgi.cgi
- Command execution patterns in system logs
- Multiple failed authentication attempts followed by CGI access
Network Indicators:
- HTTP POST requests to /cgi-bin/cstecgi.cgi with shell metacharacters
- Outbound connections from router to suspicious IPs
SIEM Query:
source="router_logs" AND (uri="/cgi-bin/cstecgi.cgi" OR command="setWiFiWpsConfig") AND (payload CONTAINS ";" OR payload CONTAINS "|" OR payload CONTAINS "`")