CVE-2026-46395
HAX CMS anfällig für Offenlegung privater Schlüssel durch fehlerhafte HMAC-Implementierung
- Veröffentlicht
- 05.06.2026
- Aktualisiert
- 05.06.2026
- CNA zuweisen
- GitHub_M
- Beweise beobachtet
- 08.08.2026
Primäres CVSS
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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:XNiedrig · nächste 30 Tage
- Perzentil
- 22,3 %
- Modelldatum
- 21.09.2026
EPSS ist eine statistische Schätzung, keine Gewissheit oder ein Maß für die Auswirkung. Kombinieren Sie es mit CVSS, KEV-Status, Belichtung und Ihrer Umgebung.
Zusammenfassung
HAX CMS hilft bei der Verwaltung eines Microsite-Universums mit PHP- oder NodeJs-Backends. Vor Version 26.0.0 enthält die Funktion `hmacBase64()` im HAXcms-Node.js-Backend zwei kritische kryptografische Implementierungsfehler, die zusammen jedem nicht authentifizierten Angreifer ermöglichen, den privaten Signaturschlüssel des Systems zu extrahieren und beliebige Admin-Level-JSON-Web-Tokens (JWTs) zu fälschen, wodurch er mit einer einzigen HTTP-Anfrage vollen Admin-Zugriff erhält. Erstens übergibt die Funktion den Literal-String "0" als HMAC-Signaturschlüssel anstelle des Schlüsselparameters, wodurch jede HAXcms-Instanz für dieselbe Eingabe identische HMACs berechnet. Zweitens verkettet die Funktion nach der Berechnung des HMAC den realen Schlüsselparameter, nämlich "this.privateKey + this.salt", das Master-Signiergeheimnis des Systems, direkt an die Ausgabe. Der kombinierte Puffer wird base64-kodiert und als Token zurückgegeben. Jedes erzeugte base64url-Token hat dieselbe Struktur: 32 Bytes HMAC, geschlüsselt mit "0", und N Bytes von `privateKey+salt`. Ein Angreifer base64-dekodiert ein beliebiges Token, verwirft die ersten 32 Bytes und liest den privaten Schlüssel direkt ab. Der Endpunkt `/system/api/connectionSettings` ist nicht authentifiziert und gibt mehrere von dieser Funktion erzeugte Tokens zurück. Eine einzige GET-Anfrage an diesen Endpunkt legt den privaten Schlüssel offen. Das PHP-Backend implementiert diese Funktion korrekt mit dem tatsächlichen Schlüssel und gibt nur den Hash zurück. Die PHP-Version erzeugt 44 Zeichen lange Tokens, während die fehlerhafte Node.js-Version Tokens mit 139+ Zeichen erzeugt. Version 26.0.0 behebt das Problem.
Quellen
1PoC und Writeup für CVE-2026-46395: unauthentifizierte Offenlegung privater Schlüssel durch defekten HMAC in HAXcms Node.js (CWE-321/CWE-200). Nur für autorisierte Sicherheitsforschung.
Verantwortungsvoller Umgang
Verwenden Sie Schwachstelleninformationen nur auf Systemen, die Sie besitzen oder zu deren Testen Sie berechtigt sind. Kitploit verlinkt auf öffentliche Forschungsmetadaten und speichert keinen Exploit-Code oder bösartige Payloads.