CVE-2026-46395
HAX CMS Vulnerabile alla Divulgazione della Chiave Privata tramite Implementazione HMAC Difettosa
- Pubblicato
- 5 giu 2026
- Aggiornato
- 5 giu 2026
- Assegnazione CNA
- GitHub_M
- Evidenza osservata
- 8 ago 2026
CVSS primario
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:XBasso · prossimi 30 giorni
- Percentile
- 22,3%
- Data del modello
- 21 set 2026
L'EPSS è una stima statistica, non una certezza o una misura di impatto. Combinalo con CVSS, stato KEV, esposizione e ambiente.
Riepilogo
# HAX CMS HAX CMS aiuta a gestire un universo di micrositi con backend PHP o Node.js. Prima della versione 26.0.0, la funzione `hmacBase64()` nel backend Node.js di HAXcms contiene due errori critici di implementazione crittografica che, insieme, consentono a qualsiasi attaccante non autenticato di estrarre la chiave di firma privata del sistema e forgiare JSON Web Token (JWT) arbitrari a livello di amministratore, permettendogli di ottenere pieno accesso amministrativo con una singola richiesta HTTP. In primo luogo, la funzione passa la stringa letterale "0" come chiave di firma HMAC invece del parametro key, facendo sì che ogni istanza di HAXcms calcoli HMAC identici per lo stesso input. Poi, dopo aver calcolato l'HMAC, la funzione concatena il parametro key reale, ovvero "this.privateKey + this.salt", il segreto di firma master del sistema, direttamente sull'output. Il buffer combinato viene codificato in base64 e restituito come token. Ogni token base64url prodotto ha la stessa struttura: 32 byte di HMAC con chiave "0" e N byte di `privateKey+salt`. Un attaccante decodifica in base64 qualsiasi token, scarta i primi 32 byte e legge direttamente la chiave privata. L'endpoint `/system/api/connectionSettings` non è autenticato e restituisce più token generati da questa funzione. Una singola richiesta GET a questo endpoint espone la chiave privata. Il backend PHP implementa questa funzione correttamente con la chiave effettiva e restituisce solo l'hash. La versione PHP produce token di 44 caratteri, mentre la versione Node.js difettosa produce token di 139+ caratteri. La versione 26.0.0 corregge il problema.
Fonti
1PoC e writeup per CVE-2026-46395: divulgazione di chiave privata senza autenticazione tramite HMAC difettoso in HAXcms Node.js (CWE-321/CWE-200). Solo ricerca di sicurezza autorizzata.
Utilizzo responsabile
Utilizza le informazioni sulla vulnerabilità solo sui sistemi che possiedi o che sei autorizzato a testare. Kitploit si collega ai metadati della ricerca pubblica e non memorizza codici exploit o payload dannosi.