🚨 V4 Swap Router por z0r0z - Perda de $42.6K (2026-03-03) Tipo: Codificação ABI / Bypass de Autorização A função swap(bytes,uint256) no UniswapV4Router04 utiliza assembly inline com um deslocamento de calldata codificado (calldataload(164)) para verificar se o pagador nos dados da troca é igual a msg.sender. Isso assume uma codificação ABI padrão onde o deslocamento do parâmetro bytes é sempre 0x40. Um atacante criou um calldata codificado em ABI não padrão (mas válido) com o deslocamento de bytes definido para 0xc0, colocando seu próprio endereço na posição 164 para passar na verificação de autorização, enquanto os dados decodificados reais continham o endereço da vítima como o pagador. Isso permitiu que o atacante drenasse 42,607 USDC de uma carteira da vítima (um EOA delegado EIP-7702) que havia aprovado o router, trocando-o por 21.2 ETH através da pool ETH/USDC do Uniswap V4. TX: Vítima: Router: Entramos em contato com @z0r0zzz, mas o contrato não é atualizável e não pode ser pausado. Revogue as aprovações para o UniswapV4Router04!