Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/dani33339/tough-cookie-v2.5.0-patched
Análise EstáticaAnálise de VulnerabilidadesAnálise de CódigoExploraçãoSegurança WebAprendizado e Educação
GitHubdani33339/tough-cookie-v2.5.0-patched

Tough-Cookie-v2.5.0-Patched

tough-cookie v2.5.0 corrigido para CVE-2023-26136, vulnerabilidade de poluição de protótipo com Object.create(null) no MemoryCookieStore, incluindo demonstração de exploit e testes unitários.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Ver Repositório
5há 1 anoAinda não revisado
Compartilhar

Tough-Cookie v2.5.0 Corrigido - Correção de Poluição de Protótipo

Visão Geral

Este repositório contém uma versão corrigida do pacote tough-cookie, versão 2.5.0, para resolver a vulnerabilidade crítica de Poluição de Protótipo (CVE-2023-26136). A vulnerabilidade permite que atacantes manipulem a cadeia de protótipos injetando propriedades em objetos JavaScript. Isso pode levar a comportamento inesperado, riscos de segurança como execução remota de código e problemas de compatibilidade em aplicações que dependem deste pacote.

Descrição da Vulnerabilidade

As versões do pacote tough-cookie anteriores à v4.1.3 são vulneráveis a Poluição de Protótipo ao usar o CookieJar com o modo rejectPublicSuffixes=false. A vulnerabilidade surge do tratamento inadequado de cookies, especificamente quando o cookie.domain é definido como . Isso permite que atacantes modifiquem o objeto central, potencialmente causando problemas generalizados em toda a aplicação.

__proto__
Object.prototype

Para mais detalhes sobre o CVE-2023-26136, confira:

  • NVD - CVE-2023-26136
  • Snyk - CVE-2023-26136 no Tough-Cookie
  • GitHub - Issue #282

Riscos Potenciais da Poluição de Protótipo

A poluição de protótipo pode introduzir vários riscos críticos, incluindo:

  • Vulnerabilidades de Segurança: Ao modificar o Object.prototype base, os atacantes podem manipular o comportamento dos objetos, potencialmente elevando privilégios, acessando dados sensíveis ou contornando mecanismos de segurança na aplicação.

  • Negação de Serviço (DoS): Poluir a cadeia de protótipos pode causar comportamento inesperado no sistema, levando a travamentos, loops infinitos ou exaustão de recursos, tornando a aplicação indisponível para usuários legítimos.

  • Problemas de Compatibilidade: Alterar o Object.prototype pode causar erros e comportamento inesperado ao interagir com outras bibliotecas ou frameworks. Dependências que dependem de cadeias de protótipos podem quebrar, levando a problemas de integração ou comportamento defeituoso da aplicação durante atualizações.

  • Comportamento Inesperado da Aplicação: A poluição de protótipo pode levar a um comportamento errático do programa, incluindo corrupção de dados, violações de segurança e potencialmente expor a aplicação a novas explorações.

Principais Correções

A correção envolve modificar a classe MemoryCookieStore, especificamente o método putCookie, para evitar a poluição de protótipo criando objetos sem protótipo. As principais alterações incluem:

  1. Usar Object.create(null) em vez de {} para criar objetos sem protótipo.
  2. Corrigir a vulnerabilidade onde cookies podiam ser definidos com cookie.domain = __proto__.
  3. Adicionar testes para verificar se a vulnerabilidade foi resolvida adequadamente.

Instalando a Versão Corrigida

Para instalar a versão corrigida do tough-cookie, use o seguinte comando:

root@kitploit:~
npm install ./tough-cookie-2.5.0-PATCHED.tgz

Testando a Correção

Este repositório inclui um teste unitário projetado para verificar se a vulnerabilidade de poluição de protótipo foi resolvida com sucesso.

O teste, chamado prototype_pollution_test, verifica especificamente que definir cookies com um domínio de __proto__ não afeta mais a cadeia de protótipos do JavaScript. Isso garante que a poluição de protótipo seja evitada, mantendo a integridade da aplicação.

Para executar os testes e confirmar a correção, execute o seguinte comando:

root@kitploit:~
npm test

Demonstração de Exploração

Para demonstrar a exploração nas versões original e corrigida, siga os passos abaixo:

Versão Vulnerável Original

Instale a versão vulnerável do tough-cookie:

root@kitploit:~
npm install [email protected] && node index.js

Saída Esperada:

root@kitploit:~
Polluted object: {
  Slonser: Cookie="Slonser=polluted; Domain=__proto__; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms",
  Auth: Cookie="Auth=Lol; Domain=google.com; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms"
} EXPLOITED SUCCESSFULLY

Isso indica que o protótipo de um objeto foi poluído, confirmando que a vulnerabilidade está presente na versão original.

Versão Corrigida

root@kitploit:~
 npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js

Saída Esperada:

root@kitploit:~
EXPLOIT FAILED

Isso mostra que a exploração foi bloqueada com sucesso, confirmando que a vulnerabilidade de poluição de protótipo foi corrigida.

Abordagem e Passos Realizados

O processo de lidar com a vulnerabilidade de Poluição de Protótipo no tough-cookie v2.5.0 envolveu várias etapas metódicas para garantir que a correção fosse completa e eficaz. Abaixo está uma visão geral da abordagem que segui:

1. Entender a Vulnerabilidade

Comecei pesquisando a Poluição de Protótipo (CVE-2023-26136) para entender seu impacto. A vulnerabilidade permite que atacantes injetem propriedades na cadeia de protótipos por meio da propriedade cookie.domain, potencialmente causando riscos de segurança como execução remota de código.

2. Pesquisar Correções Existentes

Explorei issues e discussões no GitHub sobre a vulnerabilidade, incluindo a correção no tough-cookie v4.1.3, que usa Object.create(null) para evitar a poluição de protótipo. Isso me ajudou a identificar as mudanças necessárias para corrigir a v2.5.0.

3. Analisar Versões Vulnerável e Corrigida

Comparei a v2.5.0 com a v4.1.3 para entender as diferenças e identificar as mudanças necessárias. A modificação principal envolveu o uso de objetos sem protótipo para evitar a exploração.

4. Implementar a Solução

Atualizei a classe MemoryCookieStore para usar Object.create(null) em vez de {}, garantindo que não haja poluição de protótipo.

5. Testar a Solução

Escrevi testes unitários para verificar a correção e criei um script de demonstração de exploração (index.js) para mostrar como a vulnerabilidade é evitada na versão corrigida.

6. Documentar a Correção

Finalmente, documentei a correção, incluindo instruções de instalação e teste, e empacotei a versão corrigida (tough-cookie-2.5.0-PATCHED.tgz) para fácil distribuição.

Resumo das Alterações

Arquivos Adicionados/Editados a partir da v2.5.0

  • index.js: Script principal para demonstrar a vulnerabilidade e a correção.
  • lib/memstore.js: A classe MemoryCookieStore modificada para evitar poluição de protótipo.
  • test/ietf_data/parser.json: Atualizado para editar datas desatualizadas nos dados de teste.
  • test/prototype_pollution_test.js: Testes unitários para verificar se a poluição de protótipo foi corrigida.
  • tough-cookie-2.5.0-PATCHED.tgz: A versão corrigida do pacote tough-cookie.
Baixar ferramenta