🚨 V4 Swap Router di z0r0z - Perdita di $42.6K (2026-03-03) Tipo: Codifica ABI / Bypass dell'autorizzazione La funzione swap(bytes,uint256) in UniswapV4Router04 utilizza assembly inline con un offset di calldata hardcoded (calldataload(164)) per verificare che il pagatore nei dati dello swap sia uguale a msg.sender. Questo presuppone una codifica ABI standard in cui l'offset del parametro bytes è sempre 0x40. Un attaccante ha creato un calldata codificato in ABI non standard (ma valido) con l'offset bytes impostato su 0xc0, posizionando il proprio indirizzo alla posizione 164 per superare il controllo di autorizzazione, mentre i dati bytes decodificati contenevano l'indirizzo della vittima come pagatore. Questo ha permesso all'attaccante di drenare 42.607 USDC da un wallet vittima (un EOA delegato EIP-7702) che aveva approvato il router, scambiandolo per 21.2 ETH tramite il pool ETH/USDC di Uniswap V4. TX: Vittima: Router: Abbiamo contattato @z0r0zzz, ma il contratto non è aggiornabile e non può essere messo in pausa. Revoca le approvazioni per UniswapV4Router04!