Poluição de protótipo pode enfraquecer cookies de sessão no Express
O pesquisador varanda demonstrou que poluição de protótipo em aplicações Express pode fazer a biblioteca express-session criar cookies de sessão com atributos de segurança enfraquecidos, como httpOnly: false e sameSite: none. A causa é um laço for...in que copia configurações e também lê propriedades herdadas da cadeia de protótipos. Não há correção citada; defina explicitamente os atributos de segurança dos cookies e trate poluição de protótipo na aplicação.
O que aconteceu
Um pesquisador demonstrou que uma falha de poluição de protótipo em aplicações Express pode fazer a biblioteca express-session gerar cookies de sessão com proteções reduzidas, como httpOnly desativado e sameSite none. Isso abre caminho para ataques de CSRF e XSS.
Por que importa
Sessões de usuários podem ficar expostas a roubo de cookie e a ações não autorizadas em nome do usuário. O problema atinge empresas cujas aplicações usam Express com express-session e que também tenham uma falha de poluição de protótipo.
O que fazer
Verifique se todas as aplicações Express definem explicitamente httpOnly, sameSite, secure e domain nos cookies de sessão. Corrija as fontes de poluição de protótipo na aplicação.
Para o time técnico
- Afetados
- express-session (biblioteca de sessões para Node.js) · Aplicações Express que usam a biblioteca express-session e são vulneráveis a poluição de protótipo. A fonte não cita versões.
- Exploração
- Sem exploração relatada. Pesquisa publicada pelo pesquisador varanda no dbugs.
- Correção
- Não citada na fonte. Mitigação indicada: definir explicitamente os atributos de segurança dos cookies (httpOnly, sameSite, secure, domain) na configuração da sessão.
- Vetor
- A biblioteca express-session define valores padrão seguros, como httpOnly: true, e depois copia as configurações da aplicação para um novo objeto com um laço for...in. Esse laço também itera propriedades herdadas da cadeia de protótipos. Se a aplicação for vulnerável a poluição de protótipo, o atacante altera Object.prototype e os novos cookies podem herdar httpOnly: false e sameSite: none quando o desenvolvedor não definiu esses atributos explicitamente.
- Mais detalhes
- Consequências citadas: httpOnly false torna o cookie de sessão acessível a injeção de JavaScript, aumentando o risco de XSS; sameSite none permite o envio do cookie em requisições entre sites quando os requisitos de Secure são atendidos, criando condições para CSRF; alterar Domain e Secure pode ampliar o escopo do cookie ou enfraquecer a proteção de sua transmissão. Exemplo de payload citado: {"__proto__": {"httpOnly": false, "sameSite": "none"}}.
Linha do tempo
Pesquisa do pesquisador varanda, publicada no dbugs, detalhou a fraqueza na criação de cookies da biblioteca.
Fontes 1 fonte
- @ptdbugs @ptdbugs



