Il 29 ottobre alcuni utenti della piattaforma internazionale di Polymarket hanno segnalato vendite di posizioni e prelievi mai autorizzati. La piattaforma ha sospeso temporaneamente nuove operazioni e attività del relayer, spiegando poi che un fornitore esterno era stato compromesso.
Secondo la stima di Bitquery, in un’ora circa 2,73 milioni di dollari sono usciti da 737 account. Non è un dato ufficiale di Polymarket: la piattaforma non ha pubblicato né il numero definitivo degli utenti colpiti né l’ammontare complessivo.
Bitquery non ha rilevato uno smart contract violato. I prelievi avevano approvazioni valide e sono passati attraverso l’infrastruttura ordinaria di Polymarket. Per il sistema sembravano autorizzati, anche se i titolari degli account sostenevano di non averli richiesti.
La cronologia
I primi prelievi sono iniziati alle 17:10 UTC. Cinque account sono stati svuotati nella prima ondata, uno per circa 75.000 dollari. Dopo una pausa di 13 minuti, il ritmo ha raggiunto 40 prelievi al minuto.
Alle 18:10 UTC, Bitquery contava 737 account coinvolti. La perdita individuale maggiore era di circa 358.000 dollari. Il 39% dei wallet ha perso meno di 100 dollari, mentre quattro account rappresentavano il 43% dell’importo tracciato. Da 33 account sono state trasferite anche posizioni aperte.
Alle 18:05 UTC, la pagina di stato ufficiale ha annunciato la modalità cancel-only: gli ordini esistenti potevano essere annullati, ma non era possibile inserirne o eseguirne di nuovi. Anche il relayer è stato sospeso.
Alle 18:37 UTC, Polymarket ha dichiarato di aver individuato e risolto il problema. Ha attribuito l’incidente a un fornitore esterno compromesso, coinvolto le autorità e promesso il rimborso completo. Alle 19:05 UTC l’incidente risultava risolto.
Come uno script esterno ha potuto raggiungere i fondi
Una piattaforma moderna carica componenti esterni per analisi, monitoraggio delle prestazioni, assistenza e rilevamento degli errori.
L’integrazione viene installata dal gestore del sito, non dai singoli utenti. In questo caso le indagini indicano uno script di monitoraggio incorporato nel sito Polymarket. Aprendo la piattaforma, il browser lo caricava automaticamente con il resto della pagina. Gli utenti non installavano alcuna applicazione o estensione DebugBear.
Questo codice viene eseguito all’interno di una pagina già considerata affidabile. Se il fornitore viene compromesso, codice malevolo può arrivare attraverso l’integrazione normale e interagire con una sessione autenticata.
Polymarket non ha identificato pubblicamente il fornitore. Tuttavia, l’Associated Press e altre testate hanno collegato l’incidente a DebugBear. La società ha segnalato lo stesso giorno un proprio problema di sicurezza e consigliato ai clienti di rimuovere il codice Real User Monitoring.
BleepingComputer ha analizzato una copia del JavaScript malevolo. Secondo l’analisi, verificava la presenza di una sessione attiva, controllava saldi e posizioni e tentava di usare le normali funzioni di Polymarket per trasferirli.
Non si tratta di un exploit dello smart contract. Il contratto può verificare correttamente un’approvazione ed eseguire esattamente l’istruzione ricevuta. Il problema nasce prima, nell’interfaccia che prepara l’azione per conto dell’utente autenticato.
Deposit wallet, approval e relayer
Il deposit wallet custodisce i fondi dell’account su Polygon. Secondo Bitquery conteneva pUSD, garantito uno a uno da USDC.
Un approval consente un’azione. Per la blockchain è un’istruzione crittograficamente valida, ma la rete non può sapere se la persona l’abbia voluta consapevolmente, se l’interfaccia sia stata alterata o se codice esterno abbia abusato della sessione.
Il relayer invia la transazione e paga la commissione di rete. Bitquery ritiene che questo percorso abbia funzionato normalmente dal punto di vista tecnico. A cambiare era la destinazione: i fondi venivano inviati a un indirizzo controllato dall’attaccante.
Un’approvazione valida, quindi, non equivale a un prelievo volontario. La prima descrive ciò che la blockchain ha verificato; il secondo riguarda l’intenzione umana.
Un’anomalia visibile on-chain
L’ondata principale è terminata quasi insieme alla sospensione del relayer. Nelle due settimane precedenti, la mediana era di circa 47 prelievi giornalieri convertiti in POL tramite Relay. Il 29 ottobre un singolo indirizzo ha ricevuto 981 trasferimenti.
Un controllo automatico potrebbe combinare più segnali: centinaia di account, lo stesso indirizzo di destinazione, una crescita improvvisa della frequenza, posizioni vendute immediatamente prima del prelievo e un’attività molto distante dai valori normali.
Secondo Bitquery, i fondi sono stati convertiti in POL, raccolti su un indirizzo e poi distribuiti tra nuovi wallet e spostati verso Ethereum. Un nuovo account Polymarket sarebbe stato utilizzato anche per vendere o convertire posizioni sottratte.
Nell’ultima rilevazione, alle 19:49 UTC, la maggior parte dei fondi tracciati era ancora su Polygon. È un’istantanea, non un bilancio definitivo.
Perché i numeri restano stime
I dati on-chain mostrano indirizzi, importi e orari, ma non identificano da soli l’attaccante né spiegano come sia stata ottenuta ogni approvazione. Bitquery ha contato il percorso individuato; altri indirizzi o metodi potrebbero modificare il totale.
La formulazione corretta è: Bitquery ha stimato 2,73 milioni di dollari di perdite tracciate su 737 account. Polymarket non ha confermato ufficialmente queste cifre.
Rimborsi e responsabilità
Polymarket ha promesso di rimborsare integralmente tutti gli utenti colpiti. Al momento della pubblicazione non aveva ancora comunicato il numero finale di account, l’importo complessivo dei rimborsi o un calendario completo.
Per il cliente, un fornitore esterno fa parte del prodotto. Non utilizza separatamente smart contract, relayer e servizio di monitoraggio. Se una dipendenza gira nell’interfaccia affidabile e può raggiungere una sessione autenticata, la sua sicurezza diventa parte della sicurezza della piattaforma.
Nel giugno 2026 Polymarket aveva già segnalato un altro caso in cui un fornitore compromesso aveva inserito codice malevolo nel frontend di alcuni utenti. I due incidenti appartengono alla stessa categoria di rischio, ma non ci sono prove sufficienti per affermare che il meccanismo fosse identico o che fossero collegati.
Uno smart contract sicuro non protegge l’intero sistema
Una blockchain può confermare che una transazione rispetta le regole tecniche. Non può confermare che la persona abbia visto un’interfaccia autentica, compreso l’indirizzo di destinazione e voluto compiere proprio quell’azione.
La catena completa di sicurezza è:
codice esterno → sessione del browser → approvazione → relayer → smart contract → indirizzo di destinazione
Il 29 ottobre, la parte finale della catena ha funzionato come previsto. È bastata una compromissione all’inizio perché un’esecuzione corretta producesse il risultato sbagliato per gli utenti.
Polymarket ha limitato le operazioni, ripristinato gli scambi e promesso i rimborsi. Ora servono la conferma dei pagamenti e una spiegazione delle misure che impediranno a un’altra dipendenza esterna di generare nuovamente transazioni valide ma indesiderate.


