> ## Content Index
> Fetch the complete content index at: https://yokai.hakaisecurity.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# [Pt-Br] Por Trás do Espelho: Investigando Vulnerabilidades no MagicMirror² (CVE-2026-63642, CVE-2026-63643)
- URL: https://yokai.hakaisecurity.io/pt-br-por-tras-do-espelho-investigando-vulnerabilidades-no-magicmirror2-cve-2026-63642-cve-2026-63643/
- Published: 2026-10-01T19:57:45.000Z
- Updated: 2026-10-01T19:57:45.000Z
- Author: Gabriel Alves
- Tags: pt-br, Research Blog, #pair-64643

Durante uma análise do código-fonte do **MagicMirror²**, uma plataforma open source utilizada para transformar um espelho semitransparente em um display inteligente, o **time Yokai da Hakai Security** identificou duas vulnerabilidades recentes de **Server-Side Request Forgery (SSRF)**: [CVE-2026-63642 ](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-998g-7v5w-cr7g?ref=blog.hackingclub.com)e [CVE-2026-63643](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-w6x9-28jw-hq7j?ref=blog.hackingclub.com).

As vulnerabilidades estão **relacionadas a diferentes módulos do MagicMirror²** e permitem que requisições **controladas externamente** sejam processadas pelo **servidor**. A [CVE-2026-63642](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-998g-7v5w-cr7g?ref=blog.hackingclub.com) afeta o módulo `newsfeed` e permite realizar requisições `HTTP` do lado do servidor por meio da funcionalidade de verificação de URLs. Já a [CVE-2026-63643](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-w6x9-28jw-hq7j?ref=blog.hackingclub.com) afeta o módulo **CALENDAR**, permitindo que URLs controladas pelo atacante sejam utilizadas em r**equisições realizadas pelo próprio servidor**.

## O que é o Magic Mirror?

O Magic Mirror é uma aplicação de código aberto que transforma qualquer monitor ou TV em um espelho inteligente interativo. Com ele, você pode exibir informações úteis como previsão do tempo, manchetes de notícias, calendário e muito mais, tudo enquanto se olha no espelho. É muito usado para criar espelhos high-tech para banheiros, closets e até mesmo em ambientes comerciais e de varejo.

Link de referência: [MagicMirror²](https://magicmirror.builders/?ref=yokai.hakaisecurity.io)

![](https://yokai.hakaisecurity.io/content/images/2026/09/image-2.png)

## O que é SSRF?

**SSRF (Server-Side Request Forgery)** é uma vulnerabilidade que acontece quando uma aplicação permite que o usuário controle uma requisição feita pelo próprio servidor.

Normalmente, o servidor acessa apenas os recursos necessários para o funcionamento da aplicação. Porém, quando existe um SSRF, um atacante pode fazer com que esse servidor realize requisições para outros endereços.

Isso pode permitir o acesso a **serviços internos, APIs administrativas ou recursos que não estão expostos diretamente à Internet**.

Em resumo, o atacante utiliza o próprio servidor como intermediário para alcançar recursos que, de outra forma, não conseguiria acessar.

Para entender melhor o funcionamento e os impactos dessa vulnerabilidade, recomendamos a leitura do [artigo do sobre SSRF](https://blog.hackingclub.com/test/?ref=yokai.hakaisecurity.io), que apresenta uma explicação prática e exemplos de exploração.

## Blind Server Side Request Forgery (SSRF) [CVE-2026-63642](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-998g-7v5w-cr7g?ref=blog.hackingclub.com)

A função **`checkArticleUrl()`,** localizada em `newsfeed/node_helper.js`, realiza uma requisição `HTTP` utilizando o método `HEAD` para a URL fornecida, sem aplicar uma validação adequada ao destino informado.

O comportamento permite que uma URL controlada externamente seja processada pelo servidor do MagicMirror². Como a requisição utiliza o método `HEAD`, o conteúdo da resposta não é retornado.

Apesar de não expor diretamente o conteúdo do recurso acessado, esse comportamento pode ser utilizado para construir um cenário de SSRF cego (Blind SSRF). Diferenças nas respostas e no tempo de processamento das requisições podem fornecer informações sobre a existência ou disponibilidade de serviços acessíveis a partir do servidor.

**Código analisado:** [defaultmodules/newsfeed/node\_helper.js](https://github.com/MagicMirrorOrg/MagicMirror/blob/d203fefed18ebe2827bcda7fc0b35072056ab769/defaultmodules/newsfeed/node%5Fhelper.js?ref=yokai.hakaisecurity.io)

![](https://blog.hackingclub.com/content/images/2026/08/image-6.png)

### Server Side Request Forgery (SSRF) Calendar .js [CVE-2026-63643](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-w6x9-28jw-hq7j?ref=blog.hackingclub.com)

O handler `ADD_CALENDAR`, localizado em `calendar/node_helper.js`, encaminha o payload recebido diretamente para o componente responsável por realizar o `fetch` do calendário, sem aplicar mecanismos adequados de validação ou restrição da URL de destino.

Esse comportamento cria uma superfície adicional para SSRF, já que o servidor pode realizar requisições para destinos definidos externamente.

Um ponto relevante é a diferença em relação ao endpoint `/cors` do próprio projeto. Nesse componente, já existem mecanismos de proteção destinados a restringir esse tipo de requisição. A ausência de controles equivalentes no handler `ADD_CALENDAR` demonstra uma inconsistência na implementação das diferentes funcionalidades que realizam requisições `HTTP`.

**Código analisado:** [modules/calendar/node\_helper.js](https://github.com/MagicMirrorOrg/MagicMirror/blob/900ba886edd306610918551d0dd2e7cc29bda7e4/modules/calendar/node%5Fhelper.js?ref=yokai.hakaisecurity.io)

![](https://blog.hackingclub.com/content/images/2026/08/image-11.png)

## Explorando a vulnerabilidade Blind SSRF [CVE-2026-63642](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-998g-7v5w-cr7g?ref=blog.hackingclub.com)

Para demonstrar a exploração da **CVE-2026-63642**, foi desenvolvido um Proof of Concept (PoC) que utiliza **Socket.IO** para se conectar ao namespace `/newsfeed` do MagicMirror² e enviar o evento `CHECK_ARTICLE_URL`.

O evento recebe uma URL controlada pelo usuário e é processado pela função `checkArticleUrl()`, localizada em `newsfeed/node_helper.js`. Essa função realiza uma requisição `HTTP` utilizando o método `HEAD` para a URL fornecida, sem realizar uma validação adequada do destino.

Dessa forma, o próprio servidor do MagicMirror² realiza a requisição em nome do atacante, caracterizando uma **Blind Server-Side Request Forgery (Blind SSRF)**.

O exploit está disponível publicamente no repositório do [GitHub da Hakai Security](https://github.com/hakaioffsec/CVE-2026-63642?ref=yokai.hakaisecurity.io).

![](https://blog.hackingclub.com/content/images/2026/09/image-1.png)

## **Exploração da vulnerabilidade SSRF** [**CVE-2026-63643**](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-w6x9-28jw-hq7j?ref=blog.hackingclub.com)

A [**CVE-2026-63643**](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-w6x9-28jw-hq7j?ref=yokai.hakaisecurity.io) está presente no módulo `**Calendar**` do MagicMirror² e pode ser explorada através da comunicação com o namespace `/calendar` utilizando `**Socket.IO**`. Para reproduzir a vulnerabilidade, a PoC estabelece a conexão com o servidor e envia o evento `ADD_CALENDAR` contendo a URL que será processada pela aplicação.

Após receber o evento, o MagicMirror² utiliza a URL fornecida para realizar uma requisição a partir do próprio servidor. Como não há uma validação adequada do destino, é possível direcionar essa requisição para recursos que não deveriam estar acessíveis externamente.

Além de demonstrar a execução da requisição pelo servidor, a PoC permite observar o conteúdo retornado pelo destino. Isso diferencia essa vulnerabilidade da [**CVE-2026-63642**](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-998g-7v5w-cr7g?ref=yokai.hakaisecurity.io), classificada como Blind SSRF, pois neste caso a resposta obtida pelo servidor pode ser recuperada através do fluxo do módulo `Calendar`.

O exploit está disponível publicamente no repositório do [GitHub da Hakai Security](https://github.com/hakaioffsec/CVE-2026-63642?ref=yokai.hakaisecurity.io).

![](https://blog.hackingclub.com/content/images/2026/09/image-3.png)

## Divulgação Responsável

As duas vulnerabilidades foram identificadas pelo **time de Research Yokai, da Hakai Security**, durante a análise do código-fonte do MagicMirror² e posteriormente reportadas diretamente ao projeto por meio dos **GitHub Security Advisories**.

Após o período de análise e comunicação com o mantenedor, os problemas foram reconhecidos e publicados oficialmente nos advisories do projeto.

As vulnerabilidades receberam os identificadores [**CVE-2026-63642**](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-998g-7v5w-cr7g?ref=yokai.hakaisecurity.io) e [**CVE-2026-63643**](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-w6x9-28jw-hq7j?ref=yokai.hakaisecurity.io), referentes, respectivamente, às falhas de **Blind SSRF** no módulo `newsfeed`e **SSRF** no módulo `calendar`. Ambas afetam a versão **2.36.0** e foram corrigidas na versão **2.37.0 ou posterior**.

- **CVE-2026-63642:** [GitHub Security Advisory](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-998g-7v5w-cr7g?ref=blog.hackingclub.com)
- **CVE-2026-63643:** [GitHub Security Advisory](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-w6x9-28jw-hq7j?ref=blog.hackingclub.com)

## Correções implementadas

As vulnerabilidades **CVE-2026-63642** e **CVE-2026-63643** foram corrigidas no commit [58c2a5e](https://github.com/MagicMirrorOrg/MagicMirror/commit/58c2a5e?ref=yokai.hakaisecurity.io), posteriormente disponibilizado na versão **2.37.0** do MagicMirror².

A correção adicionou um novo mecanismo de controle de acesso para as conexões `**Socket.IO**`, fazendo com que elas também respeitem a configuração de `ipWhitelist` utilizada pelo servidor.

No arquivo `js/ip_access_control.js`, foi implementada a função `socketIpAccessControl()`, responsável por verificar o endereço IP durante o estabelecimento da conexão `Socket.IO`:

```
function socketIpAccessControl (whitelist) {
```

![](https://yokai.hakaisecurity.io/content/images/2026/10/image-1.png)

A função é utilizada em `js/server.js` através da opção `allowRequest`:

```
allowRequest: socketIpAccessControl(config.ipWhitelist),
```

Com essa alteração, as conexões aos namespaces `Socket.IO` utilizados pelos módulos `newsfeed` e `calendar` passam a ser submetidas ao mesmo controle de acesso baseado em IP.

Essa mudança impede que clientes não autorizados acessem diretamente os namespaces utilizados para explorar as funcionalidades que deram origem às **CVE-2026-63642** e **CVE-2026-63643**.

Os arquivos modificados na correção podem ser consultados abaixo:

- [js/ip\_access\_control.js](https://github.com/MagicMirrorOrg/MagicMirror/blob/58c2a5e/js/ip%5Faccess%5Fcontrol.js?ref=yokai.hakaisecurity.io#L90-L107)[ — linhas 90–107](https://github.com/MagicMirrorOrg/MagicMirror/blob/58c2a5e/js/ip%5Faccess%5Fcontrol.js?ref=yokai.hakaisecurity.io#L90-L107)
- [js/server.js](https://github.com/MagicMirrorOrg/MagicMirror/blob/58c2a5e/js/server.js?ref=yokai.hakaisecurity.io#L44)[ — linha 44](https://github.com/MagicMirrorOrg/MagicMirror/blob/58c2a5e/js/server.js?ref=yokai.hakaisecurity.io#L44)

## Mitigação

A principal medida de mitigação para as vulnerabilidades **CVE-2026-63642** e **CVE-2026-63643** é atualizar o **MagicMirror²** para a versão **2.37.0 ou posterior**, que já inclui as correções implementadas pelo projeto.

Para instalações que não possam ser atualizadas imediatamente, recomenda-se restringir o acesso à interface do MagicMirror² apenas a usuários e redes confiáveis, evitando sua exposição direta à Internet. Também é importante revisar a configuração de `ipWhitelist` e limitar o acesso aos serviços internos que podem ser alcançados pelo servidor.

Como as vulnerabilidades exploram funcionalidades disponibilizadas através do `**Socket.IO**`, restringir o acesso ao servidor reduz a possibilidade de que um usuário não autorizado alcance os namespaces utilizados pelos módulos `newsfeed` e `calendar`.

### Referências:

[Github Exploit.](https://github.com/hakaioffsec/CVE-2026-63642?ref=yokai.hakaisecurity.io)

[CVE-2026-63642](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-998g-7v5w-cr7g?ref=yokai.hakaisecurity.io).

[CVE-2026-63643](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-w6x9-28jw-hq7j?ref=yokai.hakaisecurity.io)

### Onde praticar?

O [**Hacking Club**](https://app.hackingclub.com/?ref=blog.hackingclub.com) é uma plataforma de treinamento voltada para o desenvolvimento de profissionais de cibersegurança. O laboratório [**Lumen**](https://app.hackingclub.com/training/challenges/151?ref=blog.hackingclub.com) simula um cenário baseado nas vulnerabilidades [CVE-2026-63643](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-w6x9-28jw-hq7j?ref=blog.hackingclub.com), [CVE-2026-63642](https://github.com/MagicMirrorOrg/MagicMirror/security/advisories/GHSA-998g-7v5w-cr7g?ref=blog.hackingclub.com), abordada neste artigo e pode ser utilizado para consolidar, na prática, os conhecimentos apresentados.