CVE-2024-46468
📋 TL;DR
This Server-Side Request Forgery (SSRF) vulnerability in JPress allows attackers to make the vulnerable server send requests to internal or external systems, potentially accessing sensitive information. It affects all JPress installations running version 5.1.1 or earlier. Attackers can exploit this to read internal network resources or cloud metadata.
💻 Affected Systems
- JPress
📦 What is this software?
Jpress by Jpress
⚠️ Risk & Real-World Impact
Worst Case
Attacker accesses cloud instance metadata (IAM credentials, secrets), internal network services, or sensitive backend systems, leading to full system compromise.
Likely Case
Information disclosure from internal services, cloud metadata exposure, or limited internal network reconnaissance.
If Mitigated
Limited to error messages or failed requests if proper network segmentation and input validation are in place.
🎯 Exploit Status
Public proof-of-concept available in GitHub gist. Exploitation requires minimal technical skill.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: v5.1.2 or later
Vendor Advisory: https://github.com/JPressProjects/jpress/issues/190
Restart Required: Yes
Instructions:
1. Backup your JPress installation and database. 2. Download JPress v5.1.2 or later from official repository. 3. Replace existing JPress files with patched version. 4. Restart the JPress application server.
🔧 Temporary Workarounds
Input Validation Filter
allImplement strict URL validation to reject SSRF attempts
Implement regex validation for URLs: ^https?:\/\/([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,})(:[0-9]+)?(\/.*)?$
Network Segmentation
linuxRestrict outbound network access from JPress server
iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -A OUTPUT -p tcp --dport 443 -j DROP
🧯 If You Can't Patch
- Implement web application firewall (WAF) rules to block SSRF patterns
- Restrict JPress server's outbound network access to only required external services
🔍 How to Verify
Check if Vulnerable:
Check JPress version in admin panel or via 'cat WEB-INF/classes/jpress.properties | grep version'
Check Version:
grep 'jpress.version' WEB-INF/classes/jpress.properties
Verify Fix Applied:
Verify version is v5.1.2 or later and test SSRF payloads return errors instead of successful requests
📡 Detection & Monitoring
Log Indicators:
- Unusual outbound HTTP requests from JPress server
- Requests to internal IP addresses (10., 172.16., 192.168.)
- Requests to cloud metadata endpoints (169.254.169.254)
Network Indicators:
- JPress server making unexpected outbound HTTP/HTTPS requests
- Requests to non-standard ports from web application
SIEM Query:
source="jpress.log" AND (url="*169.254.169.254*" OR url="*metadata*" OR url="*10.*" OR url="*192.168.*")