Phoenix · Phoenix · CVE-2026-56812
**Nome do Software Vulnerável e Versões Afetadas**
phoenix versões 1.2.0-rc.0 até 1.5.14
phoenix versões 1.6.0-rc.0 até 1.6.16
phoenix versões 1.7.0-rc.0 até 1.7.23
phoenix versões 1.8.0-rc.0 até 1.8.8
**Description**
O cliente JavaScript Presence no phoenix contém uma verificação inadequada de condições excepcionais que permite que um invasor com acesso comum ao canal cause uma negação de serviço persistente no lado do cliente para todos os visualizadores de um tópico de canal de presença. O problema reside no arquivo `assets/js/phoenix/presence.js` dentro das rotinas `Presence.syncState()` e `Presence.syncDiff()`. O cliente utiliza um teste de verdade simples (`state[key]`) em vez de uma verificação de propriedade própria para verificar se uma presença existe. Como as chaves de presença são controladas pelo invasor, um usuário pode fornecer uma chave que corresponda a um nome de membro do `Object.prototype` (como ` proto `, `constructor`, `toString` ou `hasOwnProperty`). Isso faz com que a busca retorne o `Object.prototype` integrado em vez de `undefined`, levando o código a tentar ler `.metas.map(...)` do protótipo, o que gera um `TypeError` não capturado. Essa exceção impede que o estado local seja atualizado e evita que o `onSync()` seja disparado. Como o servidor continua a enviar a chave maliciosa, a sincronização permanece interrompida para todos os visualizadores do tópico até que o invasor saia. Trata-se de uma confusão de tempo de leitura do objeto protótipo e não de poluição de protótipo.
**Recommendations**
Atualize o phoenix para a versão 1.5.15 ou posterior.
Atualize o phoenix para a versão 1.6.17 ou posterior.
Atualize o phoenix para a versão 1.7.24 ou posterior.
Atualize o phoenix para a versão 1.8.9 ou posterior.