lowVulnerability

CVE-2026-63641

### Summary MagicMirror applies `ipWhitelist` only as Express middleware, but the Socket.IO server is attached directly to the HTTP server without equivalent IP allowlist, origin, or namespace authentication checks. In a documented common deployment where MagicMirror listens on a non-loopback interface but expects `ipWhitelist` to restrict access, an untrusted network client can connect directly to module Socket.IO namespaces and send arbitrary module-helper notifications. This allows unauthenticated server-side requests through default modules and can reach command execution in the default `updatenotification` helper when a third-party module update is pending and the attacker supplies the update command through the trusted socket configuration path. ### 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`. Default committed settings bind to loopback and allow loopback only (`js/defaults.js:8-13`), so the remote network impact requires a documented common configuration where the server is reachable beyond loopback. The shipped sample explicitly documents non-loopback binding and IP allowlist behavior: `config/config.js.sample:11-20` says `address` may be another interface or `0.0.0.0`/`::`, and `ipWhitelist` controls allowed clients. The trust-boundary issue is that Socket.IO is configured before and outside the Express middleware chain: - `js/server.js:42-50` creates Socket.IO directly on the HTTP(S) server with `cors.origin: /.*$/`. - `js/server.js:89-90` applies `ipAccessControl(config.ipWhitelist)` only with `app.use(...)`, which protects Express routes and static files but not Socket.IO handshakes or namespaces. - A search of runtime files found no `allowRequest`, `io.use(...)`, handshake IP check, or namespace authentication for Socket.IO; the only relevant matches were `js/server.js:44` and `js/ser

Properties

ghsa_id
GHSA-w26r-fwg8-rcp3
severity
low
summary
MagicMirror Socket.IO module namespaces bypass configured IP whitelist and allow unauthenticated server-side actions
cve_id
CVE-2026-63641
is_ghsa_only
false
ghsa_published
2026-08-18T17:26:41Z
source_url
https://github.com/advisories/GHSA-w26r-fwg8-rcp3
ghsa_updated
2026-08-18T17:26:43Z

Related Entities (4)

VULNERABLE_TO (1)

[Software]npm/magicmirror

AFFECTS (1)

[Software]npm/magicmirror

HAS_WEAKNESS (1)

[Weakness]Improper Access Control

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-63641 — Ninja Signal Threat Intelligence | Ninja Signal