57866 sc low failure to verify the recipient s address can result in the theft of purchased tokens

Submitted on Oct 29th 2025 at 10:02:12 UTC by @pashap9990 for Audit Comp | Alchemix V3arrow-up-right

  • Report ID: #57866

  • Report Type: Smart Contract

  • Report severity: Low

  • Target: https://github.com/alchemix-finance/v3-poc/blob/immunefi_audit/src/utils/ZeroXSwapVerifier.sol

  • Impacts:

    • Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yield

Description

Finding Description and Impact

It is possible to verify fetched calldata from zero protocol by using the library ZeroXSwapVerifier. With the correct calldata, an executor can then execute a swap in Uniswap V3 by calling Settler::execute. However, the executor's assets are stolen by a malicious user because the library failed to verify the recipient's address.

Code Snippet

https://github.com/alchemix-finance/v3-poc/blob/a192ab313c81ba3ab621d9ca1ee000110fbdd1e9/src/utils/ZeroXSwapVerifier.sol#L99 https://github.com/alchemix-finance/v3-poc/blob/a192ab313c81ba3ab621d9ca1ee000110fbdd1e9/src/utils/ZeroXSwapVerifier.sol#L209 https://github.com/alchemix-finance/v3-poc/blob/a192ab313c81ba3ab621d9ca1ee000110fbdd1e9/src/utils/ZeroXSwapVerifier.sol#L225 https://github.com/alchemix-finance/v3-poc/blob/a192ab313c81ba3ab621d9ca1ee000110fbdd1e9/src/utils/ZeroXSwapVerifier.sol#L264

Furthermore, recipient's address should be checked in ZeroXSwapVerifier::_verifyRFQVIP and ZeroXSwapVerifier::_verifyVelodromeV2VIP

Proof of Concept

Proof of Concept

Kindly apply git patch below

Was this helpful?