mediumCVSS 4.3Vulnerability

CVE-2026-63640

### Summary When `hideConfigSecrets: true` is enabled, MagicMirror redacts `SECRET_*` environment placeholders in the HTTP `/config` response, but the shared node-helper socket dispatcher expands `**SECRET_NAME**` placeholders in every inbound socket payload before passing it to module helpers. Any client that can connect to a loaded module namespace can send a placeholder such as `**SECRET_API_KEY**` and cause the server to substitute the real environment variable into the helper payload. Helpers that echo attacker-controlled payload fields, such as the default weather helper error path, can return the secret value to the socket client. ### Details The affected product is the npm package/application `magicmirror` at version `2.36.0`, tested at commit `fb41d24ef522e91e802e2a623ff6afbddeb3c9d8` from `https://github.com/MagicMirrorOrg/MagicMirror.git`. The secret-redaction feature is implemented during config loading: - `js/utils.js:117-123` loads a `config.env` file next to the config file into `process.env` when present. - `js/utils.js:130-151` creates both a full config and a redacted config. - `js/utils.js:137-140` redacts environment variables whose names start with `SECRET_` to `**SECRET_NAME**` in the redacted config when `hideConfigSecrets: true` is present. - `js/server.js:112-125` returns either `configObj.redactedConf` or `configObj.fullConf` from `/config` depending on `config.hideConfigSecrets`. The disclosure root cause is the inbound socket dispatcher: - `js/node_helper.js:88-103` registers a catch-all handler for each module namespace. - `js/node_helper.js:91-99` checks `config?.hideConfigSecrets` and, for every inbound object payload, runs `replaceSecretPlaceholder(JSON.stringify(payload))` before invoking `socketNotificationReceived(...)`. - `js/server_functions.js:23-34` implements `replaceSecretPlaceholder(...)` by replacing `**SECRET_* **`-style placeholders with `process.env[...]`, unless `global.config.cors === "allowAll"`. This reverses t

Properties

ghsa_id
GHSA-q4gh-4ffp-5cg8
severity
medium
summary
MagicMirror socket payload secret placeholder expansion can disclose SECRET_* environment variables
cvss_score
4.3
cve_id
CVE-2026-63640
cvss_vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
is_ghsa_only
false
ghsa_published
2026-08-18T18:00:16Z
source_url
https://github.com/advisories/GHSA-q4gh-4ffp-5cg8
ghsa_updated
2026-08-18T18:00:19Z

Related Entities (4)

VULNERABLE_TO (1)

[Software]npm/magicmirror

AFFECTS (1)

[Software]npm/magicmirror

HAS_WEAKNESS (1)

[Weakness]Exposure of Sensitive Information to an Unauthorized Actor

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-63640 (CVSS 4.3) — Ninja Signal Threat Intelligence | Ninja Signal