🚨 V4 Swap Router par z0r0z - Perte de 42,6K $ (2026-03-03) Type : Encodage ABI / Contournement d'autorisation La fonction swap(bytes,uint256) dans UniswapV4Router04 utilise de l'assemblage en ligne avec un décalage de calldata codé en dur (calldataload(164)) pour vérifier que le payeur dans les données d'échange est égal à msg.sender. Cela suppose un encodage ABI standard où le décalage du paramètre bytes est toujours 0x40. Un attaquant a créé un calldata encodé en ABI non standard (mais valide) avec le décalage bytes réglé sur 0xc0, plaçant sa propre adresse à la position 164 pour passer le contrôle d'autorisation, tandis que les données bytes décodées contenaient l'adresse de la victime en tant que payeur. Cela a permis à l'attaquant de siphonner 42 607 USDC d'un portefeuille de la victime (un EOA délégué EIP-7702) qui avait approuvé le routeur, l'échangeant contre 21,2 ETH via le pool ETH/USDC de Uniswap V4. TX : Victime : Routeur : Nous avons contacté @z0r0zzz, mais le contrat n'est pas upgradable et ne peut pas être mis en pause. Révoquez les approbations pour UniswapV4Router04 !