The ZENO token's redeem function performs a direct 1:1 transfer of USDC without accounting for decimal differences between ZENO (18 decimals) and USDC (6 decimals), potentially causing massive overcharges or failed redemptions.
The redeem function performs a direct transfer without decimal adjustment:
Redeeming 1.0 ZENO:
Input: amount = 1e18 (1.0 ZENO)
Current: Transfers 1e18 USDC (1 trillion USDC!)
Should: Transfer 1e6 USDC (1 USDC)
Redeeming 1000 ZENO:
Input: amount = 1000e18
Current: Transfers 1000e18 USDC
Should: Transfer 1000e6 USDC
Users attempting to redeem ZENO tokens will have their transactions revert due to attempting to transfer 1000x more USDC than intended, completely breaking the token's redemption mechanism or could lead to Unintended large transfers if sufficient balance exists
Manual Review
Add decimal adjustment when transferring USDC
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.