CVE-2026-46395
HAX CMS Vulnerável à Divulgação de Chave Privada via Implementação HMAC Quebrada
- Publicado
- 5 de jun. de 2026
- Atualizado
- 5 de jun. de 2026
- Atribuindo CNA
- GitHub_M
- Evidência observada
- 8 de ago. de 2026
CVSS primário
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:XBaixo · próximos 30 dias
- Percentil
- 22,3%
- Data do modelo
- 21 de set. de 2026
EPSS é uma estimativa estatística, não uma certeza ou uma medida de impacto. Combine-o com CVSS, status KEV, exposição e seu ambiente.
Resumo
# HAX CMS O HAX CMS ajuda a gerenciar um universo de microssites com backends em PHP ou Node.js. Antes da versão 26.0.0, a função `hmacBase64()` no backend Node.js do HAXcms contém dois erros críticos de implementação criptográfica que, juntos, permitem que qualquer atacante não autenticado extraia a chave de assinatura privada do sistema e forje JSON Web Tokens (JWTs) arbitrários de nível administrativo, permitindo obter acesso total de administrador com uma única requisição HTTP. Primeiro, a função passa a string literal "0" como chave de assinatura HMAC em vez do parâmetro de chave, fazendo com que todas as instâncias do HAXcms calculem HMACs idênticos para a mesma entrada. Em seguida, após calcular o HMAC, a função concatena o parâmetro de chave real, que é "this.privateKey + this.salt", o segredo mestre de assinatura do sistema, diretamente na saída. O buffer combinado é codificado em base64 e retornado como token. Cada token base64url produzido tem a mesma estrutura: 32 bytes de HMAC com chave "0" e N bytes de `privateKey+salt`. Um atacante decodifica qualquer token em base64, descarta os primeiros 32 bytes e lê a chave privada diretamente. O endpoint `/system/api/connectionSettings` não é autenticado e retorna múltiplos tokens gerados por esta função. Uma única requisição GET a este endpoint expõe a chave privada. O backend PHP implementa esta função corretamente com a chave real e retorna apenas o hash. A versão PHP produz tokens de 44 caracteres, enquanto a versão quebrada do Node.js produz tokens de 139+ caracteres. A versão 26.0.0 corrige o problema.
Fontes
1PoC e writeup para CVE-2026-46395: divulgação não autenticada de chave privada via HMAC quebrado no HAXcms Node.js (CWE-321/CWE-200). Apenas pesquisa de segurança autorizada.
Uso responsável
Use informações de vulnerabilidade apenas em sistemas que você possui ou está autorizado a testar. O Kitploit vincula-se a metadados de pesquisa pública e não armazena código de exploração ou cargas maliciosas.