The ZENO::redeem and ZENO::redeemAll functions fail to account for the decimal precision mismatch between ZENO (18 decimals) and USDC (6 decimals). This discrepancy creates a 1e12 magnitude error in asset transfers. For example:
When a user holds 1 ZENO token (1e18 units) and calls redeemAll, the contract erroneously transfers 1e18 USDC units instead of the correct 1e6 units.
This represents a 1,000,000x overpayment per redemption transaction.
Complete drainage of USDC reserves within 1-2 transactions
Manual Review
Add precision conversion.
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.