CVE-2024-46468
Executive Summary
CVE-2024-46468 is a Server-Side Request Forgery (SSRF) vulnerability in JPress versions up to and including v5.1.1. This flaw allows an unauthenticated attacker to make the server issue arbitrary HTTP requests to internal or external resources, leading to sensitive information disclosure. The vulnerability is publicly known, but no official patch has been released as of the latest advisory. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant for exposed instances.
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
JPress is a Java-based content management system. The vulnerability resides in the core application logic, not in a third-party package. However, administrators should verify the integrity of their JPress distribution and ensure no malicious modifications have been introduced.
CVSS Breakdown & Threat Level
The CVSS vector is not provided in the NVD data. Based on the SSRF nature, a reasonable estimate is:
- 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, cloud metadata access, and further lateral movement.
Deep Dive & Mechanics
The SSRF vulnerability in JPress <= v5.1.1 likely exists in a feature that fetches external resources, such as importing content, fetching thumbnails, or proxying requests. The application fails to validate or restrict the target URL, allowing an attacker to supply arbitrary URLs (e.g., http://169.254.169.254/latest/meta-data/ for cloud metadata). The server then makes the request and returns the response to the attacker, leaking sensitive information.
Root Cause: Lack of input validation and URL whitelisting in the request handling logic.
Attack Flow:
- Attacker identifies an endpoint that accepts a URL parameter (e.g.,
/fetch?url=). - Attacker sends a request with a malicious URL pointing to an internal resource.
- JPress server processes the request and fetches the internal resource.
- The response is returned to the attacker, revealing sensitive data.
Vulnerable vs. Patched Code
Since no official patch is available, the vulnerable code pattern is described generically.
Vulnerable Code (Conceptual Java):
public String fetchUrl(String url) {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
// No validation of URL
return readResponse(connection);
}
Patched Code (Conceptual):
public String fetchUrl(String url) {
if (!isAllowedUrl(url)) {
throw new SecurityException("URL not allowed");
}
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
return readResponse(connection);
}
private boolean isAllowedUrl(String url) {
// Whitelist only trusted domains
return url.startsWith("https://trusted.example.com");
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- JPress v5.1.1 instance accessible over the network.
- An endpoint that accepts a URL parameter (e.g.,
/fetch?url=).
Exploit Steps:
- Identify the vulnerable endpoint by fuzzing common parameters (
url,target,fetch,proxy). - Send a request to fetch internal cloud metadata:
curl "http://target-jpress.com/fetch?url=http://169.254.169.254/latest/meta-data/" - If successful, the response will contain cloud instance metadata (e.g., IAM credentials).
- Use the leaked credentials for further lateral movement.
Lab Setup:
- Deploy JPress v5.1.1 in a Docker container.
- Expose the vulnerable endpoint.
- Use a local HTTP server to simulate internal services.
Blue Team
Detection:
- Monitor outbound HTTP requests from the JPress server to unexpected IPs (e.g., 169.254.169.254, internal RFC 1918 addresses).
- Alert on requests to cloud metadata endpoints.
Hunting:
- Search logs for URL parameters containing internal IPs or cloud metadata addresses.
- Use the Sigma rule below to detect SSRF attempts.
Indicators of Compromise (IOCs)
- Network IOCs:
- Outbound requests to
169.254.169.254(AWS metadata) - Outbound requests to
100.100.100.200(Alibaba Cloud metadata) - Outbound requests to
metadata.google.internal(GCP metadata) - Requests to internal IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- Outbound requests to
- File IOCs:
- Log entries containing
url=http://followed by internal IPs.
- Log entries containing
- Behavioral IOCs:
- Unusual outbound HTTP traffic from the JPress server.
Detection Engineering
YARA Rule
rule ssrf_jpress_cve_2024_46468 {
meta:
description = "Detects SSRF attempts targeting cloud metadata in JPress logs"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-46468"
strings:
$metadata1 = "169.254.169.254" ascii wide nocase
$metadata2 = "metadata.google.internal" ascii wide nocase
$metadata3 = "100.100.100.200" ascii wide nocase
$url_param = "url=" ascii wide nocase
condition:
any of ($metadata*) and $url_param
}
Sigma Rule
title: SSRF Attempt Against Cloud Metadata - JPress
id: 7a8b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects outbound HTTP requests from JPress to cloud metadata endpoints
author: Valters IT
date: 2025-04-10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2024-46468
logsource:
category: web
product: jpress
detection:
selection:
cs-uri-query|contains:
- "169.254.169.254"
- "metadata.google.internal"
- "100.100.100.200"
condition: selection
falsepositives:
- Legitimate administrative tasks
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-46468 JPress SSRF Attempt - Cloud Metadata";
flow:to_server,established;
content:"url="; http_uri;
content:"169.254.169.254"; http_uri;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable the vulnerable feature if not required (e.g., remove or comment out the URL fetching functionality).
- Apply a Web Application Firewall (WAF) rule to block requests containing internal IPs or cloud metadata endpoints in URL parameters.
- Restrict outbound traffic from the JPress server using network firewalls (e.g., allow only necessary external domains).
Long-term Fix:
- Upgrade to a patched version once available.
- Implement input validation and URL whitelisting in the application code.
- Use a dedicated library for safe URL fetching that prevents SSRF.
Workaround:
- Modify the application code to block requests to private IP ranges and cloud metadata endpoints.
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.