The setParameter function in the LendingPool contract allows the owner to modify the liquidity buffer ratio without proper minimum bounds or rate-of-change restrictions. This creates significant risks around protocol solvency and potential market manipulation.
The vulnerability exists in the OwnerParameter.LiquidityBufferRatio case of the setParameter function. The implementation only validates that the new value doesn't exceed 100% (100\_00 in fixed-point notation) but lacks several critical safety checks:
No minimum bound validation:
No restriction on the magnitude of change in a single update:
No time-based controls between updates.
The absence of these controls creates several serious risks:
Protocol Solvency Risk:
Setting a very low (0%) buffer leaves no reserves for handling withdrawal spikes
During high withdrawal demand, transactions could fail due to insufficient liquidity
Increases risk of temporary protocol insolvency
Market Manipulation Risk:
Sudden large changes in the buffer ratio could create arbitrage opportunities
Malicious actors could front-run parameter changes
Potential for triggering bank-run scenarios if users lose confidence in the protocol's stability
Manual
Implement Minimum Bounds:
Add Rate-of-Change Limits:
Time-Based Controls:
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.