CVE-2023-24187
📋 TL;DR
This XXE vulnerability in ureport v2.2.9 allows attackers to execute arbitrary code by uploading a specially crafted XML file to the /ureport/designer/saveReportFile endpoint. Attackers can potentially read sensitive files, perform server-side request forgery, or execute commands on the server. Any organization using the vulnerable ureport version with the designer functionality exposed is affected.
💻 Affected Systems
- ureport
📦 What is this software?
Ureport by Ureport Project
⚠️ Risk & Real-World Impact
Worst Case
Full remote code execution leading to complete system compromise, data exfiltration, and lateral movement within the network.
Likely Case
Arbitrary file read leading to credential theft, configuration disclosure, and potential privilege escalation.
If Mitigated
Limited impact with proper input validation, XML parser hardening, and access controls in place.
🎯 Exploit Status
Exploitation requires access to the vulnerable endpoint, which may require authentication. Multiple public proof-of-concept examples exist.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: v2.2.10 or later
Vendor Advisory: https://github.com/youseries/ureport
Restart Required: Yes
Instructions:
1. Backup current ureport installation. 2. Download latest version from official repository. 3. Replace vulnerable files with patched version. 4. Restart the ureport application/service.
🔧 Temporary Workarounds
Disable XXE in XML parser
allConfigure XML parser to disable external entity processing
Set XML parser properties: FEATURE_SECURE_PROCESSING=true, disallow-doctype-decl=true
Restrict access to vulnerable endpoint
allBlock access to /ureport/designer/saveReportFile via firewall or web server configuration
# Apache: <Location /ureport/designer/saveReportFile> Deny from all </Location>
# Nginx: location /ureport/designer/saveReportFile { deny all; }
🧯 If You Can't Patch
- Implement strict input validation to reject XML files containing DOCTYPE declarations or external entity references
- Deploy a web application firewall (WAF) with XXE protection rules and monitor for exploitation attempts
🔍 How to Verify
Check if Vulnerable:
Test by uploading a crafted XML file with external entity reference to /ureport/designer/saveReportFile endpoint and checking for file read or error responses
Check Version:
Check ureport version in application configuration files or via application interface
Verify Fix Applied:
Attempt the same XXE payload after patching; it should be rejected or processed safely without exposing file contents
📡 Detection & Monitoring
Log Indicators:
- Unusual XML file uploads to /ureport/designer/saveReportFile
- XML parsing errors containing DOCTYPE or SYSTEM references
- File read attempts from unexpected locations
Network Indicators:
- HTTP POST requests to /ureport/designer/saveReportFile with XML content containing !DOCTYPE or !ENTITY declarations
SIEM Query:
source="ureport.log" AND (uri="/ureport/designer/saveReportFile" AND content_type="application/xml")
🔗 References
- http://ureport.com
- https://github.com/Venus-WQLab/bug_report/blob/main/ureport/ureport-cve-2023-24187.md
- https://github.com/cgddgc/vulns/blob/main/ureport2-vuln-des.md
- https://github.com/youseries/ureport
- http://ureport.com
- https://github.com/Venus-WQLab/bug_report/blob/main/ureport/ureport-cve-2023-24187.md
- https://github.com/cgddgc/vulns/blob/main/ureport2-vuln-des.md
- https://github.com/youseries/ureport