CVE-2026-46395
HAX CMS уязвим к раскрытию закрытого ключа из-за некорректной реализации HMAC
- Опубликовано
- 5 июн. 2026 г.
- Обновлено
- 5 июн. 2026 г.
- Назначение CNA
- GitHub_M
- Наблюдены доказательства
- 8 авг. 2026 г.
Первичный 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:XНизкий · следующие 30 дней
- Процентиль
- 22,3 %
- Дата модели
- 21 сент. 2026 г.
EPSS – это статистическая оценка, а не достоверность или мера воздействия. Объедините это с CVSS, статусом KEV, воздействием и вашей средой.
Резюме
HAX CMS помогает управлять вселенной микросайтов с бэкендами на PHP или NodeJs. До версии 26.0.0 функция `hmacBase64()` в Node.js-бэкенде HAXcms содержит две критические ошибки реализации криптографии, которые вместе позволяют любому неаутентифицированному атакующему извлечь приватный ключ подписи системы и подделать произвольные JSON Web Tokens (JWTs) уровня администратора, что даёт полный доступ администратора одним HTTP-запросом. Во-первых, функция передаёт литеральную строку "0" в качестве ключа подписи HMAC вместо параметра ключа, из-за чего каждый экземпляр HAXcms вычисляет идентичные HMAC для одного и того же ввода. Затем, после вычисления HMAC, функция конкатенирует реальный параметр ключа, которым является "this.privateKey + this.salt", — мастер-секрет подписи системы — непосредственно в выходные данные. Объединённый буфер кодируется в base64 и возвращается как токен. Каждый созданный base64url-токен имеет одинаковую структуру: 32 байта HMAC, подписанного ключом "0", и N байт `privateKey+salt`. Атакующий декодирует любой токен из base64, отбрасывает первые 32 байта и напрямую считывает приватный ключ. Конечная точка `/system/api/connectionSettings` не требует аутентификации и возвращает несколько токенов, сгенерированных этой функцией. Один GET-запрос к этой конечной точке раскрывает приватный ключ. PHP-бэкенд реализует эту функцию корректно, с фактическим ключом, и возвращает только хэш. PHP-версия создаёт токены из 44 символов, тогда как сломанная Node.js-версия — токены из 139+ символов. Версия 26.0.0 исправляет проблему.
Источники
1PoC и описание для CVE-2026-46395: раскрытие закрытого ключа без аутентификации через нарушенный HMAC в HAXcms Node.js (CWE-321/CWE-200). Только для авторизованных исследований безопасности.
Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.