I prezzi degli asset sono temporaneamente in ritardoAlcuni asset non ricevono più dati di prezzo aggiornati. Gli aggiornamenti riprenderanno automaticamente al ripristino della connessione dati.
Bitculator

Bitculator su Android

Capitalizzazione di mercato:

$1,995,421,489,076

Volume 24h:

$196,800,200,171

giu 23 Liquidazioni:

$0

24H Long/Short:

Prossimamente

Bitculator · Impara

Reentrancy Attack

Cosa significa Reentrancy Attack nei termini cripto?

# 350·Aggiornato giu 2026·3 min di lettura

Un Reentrancy Attack è un difetto di sicurezza nei contratti intelligenti in cui un attaccante sfrutta la vulnerabilità del contratto chiamandolo ripetutamente prima che l'esecuzione iniziale venga completata.

Che cos'è Reentrancy Attack?

Un Reentrancy Attack si verifica quando un contratto cede il controllo a un altro contratto durante una chiamata e quel codice esterno ritorna nel primo contratto prima che abbia terminato di aggiornare i suoi registri. Questo trucco di tempistica permette all'attaccante di ripetere azioni sensibili come i prelievi più e più volte. Immagina di chiedere un rimborso e poi tornare al banco prima che il cassiere chiuda la cassa.


Mito

“Solo il codice vecchio può essere colpito da un Reentrancy Attack.” Non è vero. Qualsiasi contratto che effettua una chiamata esterna prima di fissare il proprio stato può essere vulnerabile se la logica è scadente.


Come funziona Reentrancy Attack

Breve storia. Un tipico smart contract ha una funzione di prelievo che invia fondi al chiamante. Se invia i fondi prima e azzera il saldo dopo, un attaccante può infilare una callback e richiedere di più prima che il saldo venga impostato a zero.

  1. Inizio: L'attaccante deposita alcuni fondi per sembrare legittimo.
  2. Chiamata: L'attaccante attiva il prelievo nel contratto bersaglio.
  3. Fallback: Il contratto bersaglio invia i fondi, eseguendo la funzione di fallback dell'attaccante.
  4. Ripeti: Tale fallback richiama il prelievo di nuovo prima che il saldo venga aggiornato.
  5. Svuota: Il ciclo continua fino a quando il contratto non esaurisce i fondi o il gas. Sì, questo è il trucco.

Un piccolo errore d'ordine, grande problema.


Perché Reentrancy Attack è importante

Dovrebbe interessarti perché bug di tempistica spostano soldi veri, rapidamente. Inoltre, è uno di quegli exploit classici che ogni sviluppatore e utente curioso dovrebbe riconoscere a prima vista.

  • Vantaggio: Conoscere il modello aiuta a individuare codice rischioso e proteggere i fondi.
  • Prospettiva: Si alimenta sulla trasparenza pubblica poiché tutto su una blockchain è visibile e richiamabile.
  • Rilevanza: Lo vedrai in DeFi, nei bridge, nelle tesorerie, persino nei pagamenti di governance per le DAOs.

Consiglio

Segui la regola checks then effects then interactions. Aggiorna i saldi prima, poi effettua le chiamate esterne. Aggiungi una semplice reentrancy guard per maggiore sicurezza.


Caratteristiche principali di Reentrancy Attack

Ecco cosa lo fa funzionare:

  • Ricorsione: Codice esterno richiama lo stesso contratto prima che termini l'esecuzione.
  • Ordine: Il bug si manifesta quando l'invio di fondi o la chiamata esterna avviene prima dell'aggiornamento dello stato.
  • Cross: Può rimbalzare tra più contratti, non solo tra funzioni dello stesso.
  • Asset: Funziona con ETH, token e anche con crediti contabili se il codice è scritto male.

Variazioni

Varianti diverse, stesso problema per codice scritto male:

  • Singola: Rientro ripetuto nella stessa funzione.
  • Cross: Rientro tramite una funzione diversa nello stesso contratto.
  • Multi: Rientro attraverso due o più contratti in ciclo.
  • ReadOnly: Influenzare viste o oracoli di prezzo per ingannare scritture successive.

Promemoria

Correggere un Reentrancy Attack non riguarda solo una funzione. Controlla ogni chiamata esterna, aggiungi test per catene di chiamate insolite e programma regolari audits.


Esempio

L'exploit del 2016 a The DAO sfruttò un ciclo di reentrancy sul prelievo prima che i saldi venissero azzerati, prosciugando un'enorme tesoreria in pochi minuti.


Curiosità

Il motto della community checks then effects then interactions proviene dalle prime guide di sicurezza ed è rimasto perché è corto, facile da ricordare e funziona.


Riepilogo

Versione breve da ricordare: se codice esterno può richiamarti prima che tu completi la tua contabilità, dai per scontato che lo farà e potresti consegnargli soldi gratuiti. Questo è un Reentrancy Attack.

Abbiamo dimenticato qualcosa??

Il tuo contributo ci aiuta a mantenere le cose corrette. Contattaci se qualcosa non è corretto o manca.

Contatto