CVE-2026-63640 MagicMirror socket payload secret placeholder expansion can disclose SECRET_* environment variables
An attacker can disclose SECRET_* environment variables by exploiting a placeholder expansion flaw in the socket dispatcher when secret hiding is enabled.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-63640?
CVE-2026-63640 is a medium-severity vulnerability in MagicMirrorOrg MagicMirror, published on 18 Aug 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
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.
Weakness: CWE-200
Which versions are affected by CVE-2026-63640?
2 open source packages ship an affected version, including magicmirror.
| Package | Affected | Fixed in |
|---|---|---|
magicmirror npm | All versions | 2.37.0 |
magicmirror npm | All versions | 2.37.0 |
How do I fix CVE-2026-63640?
Upgrade magicmirror to 2.37.0 or later.
Is CVE-2026-63640 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-63640 exists.
Sources
Also known as GHSA-q4gh-4ffp-5cg8.