The create
function does not restrict depositFee
or redeemFee
, allowing the creation of vaults with fees at 100% or higher. This configuration effectively prevents users from depositing or redeeming, damaging user trust and rendering the vault unusable.
Vault creation parameters include depositFee
and redeemFee
with no upper bound. The absence of validation breaks reasonable economic assumptions by permitting fees that fully capture user funds on deposit or withdrawal. Malicious or careless configuration can set these fees to 100% or more, causing deposits to yield nothing or redeems to burn the entire withdrawal. This issue materializes when the create
function is called with extreme fee values, imposing a direct barrier to normal vault operations.
Low
A 100% (or higher) fee halts user participation by nullifying deposits or redeems. This undermines core functionality, drives away liquidity, and erodes confidence in the vault, justifying a Low severity classification from a security standpoint but a clear design flaw that still harms the user experience.
Call the create
function with params.depositFee = 1e18
(representing 100%) and params.redeemFee = 1e18
.
Deploy the vault with these parameters.
Subsequent user deposits become entirely subject to the fee, rendering them worthless, and redemption similarly becomes impossible for users wishing to withdraw any value.
Enforce upper limits on the fee parameters:
This mechanism guarantees fees remain within acceptable economic constraints, prevents destructive vault configurations, and preserves a functional environment for end users.
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.