MagicMirror² — это модульная платформа интеллектуальных зеркал с открытым исходным кодом. До версии 2.37.0, когда включена функция displayConfigSecrets, универсальный диспетчер сокетов в js/node_helper.js передает все полезные данные входящего объекта через replaceSecretPlaceholder в js/server_functions.js перед вызовом socketNotificationReceived. Клиент, подключенный к пространству имен загруженного модуля, может отправить заполнитель SECRET_API_KEY, в результате чего сервер заменит его соответствующим значением среды процесса.
Помощник погоды по умолчанию принимает INIT_WEATHER, копирует идентификатор экземпляра, контролируемый злоумышленником, и возвращает его в WEATHER_ERROR, предоставляя эхо-путь для расширенного секрета. Это отменяет предполагаемую границу одностороннего редактирования и может раскрыть токены API, учетные данные или служебные ключи, хранящиеся в переменных SECRET_. Эта проблема исправлена в версии 2.37.0.
Показать оригинальное описание (EN)
MagicMirror² is an open source modular smart mirror platform. Prior to 2.37.0, when hideConfigSecrets is enabled, the catch-all socket dispatcher in js/node_helper.js passes every inbound object payload through replaceSecretPlaceholder in js/server_functions.js before invoking socketNotificationReceived. A client connected to a loaded module namespace can submit a SECRET_API_KEY placeholder, causing the server to replace it with the corresponding process environment value. The default weather helper accepts INIT_WEATHER, copies the attacker-controlled instanceId, and returns it in WEATHER_ERROR, providing an echo path for the expanded secret. This reverses the intended one-way redaction boundary and can disclose API tokens, credentials, or service keys stored in SECRET_ variables. This issue is fixed in version 2.37.0.
Характеристики атаки
Последствия
Строка CVSS v3.1