Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: medium
Valid

Protocol insolvency risk due to bottlenecked liquidation system design

Summary

The protocol's liquidation system contains three critical design limitations that could lead to system-wide insolvency during market stress events: restricted liquidator access (manager/owner only), mandatory full position liquidations, and sequential processing requirements. These limitations create a severe bottleneck in processing liquidations during high volatility periods.

Vulnerability Details

The liquidateBorrower() function in the StabilityPool contract reveals three critical design constraints:

  • Restricted Liquidator Access

function liquidateBorrower(address userAddress) external onlyManagerOrOwner nonReentrant whenNotPaused {
_update(); //can only be called by a manager or the owner
uint256 userDebt = lendingPool.getUserDebt(userAddress);
uint256 scaledUserDebt = WadRayMath.rayMul(userDebt, lendingPool.getNormalizedDebt());

Only the manager or owner can initiate liquidations, creating a central point of failure.

  • Forced Full Position Liquidations

if (crvUSDBalance < scaledUserDebt) revert InsufficientBalance(); //requires liquidating positions entirely, preventing more flexible partial liquidations.
  • Sequential Processing Requirements

bool approveSuccess = crvUSDToken.approve(address(lendingPool), scaledUserDebt); //Liquidations must be processed one at a time
if (!approveSuccess) revert ApprovalFailed();
lendingPool.updateState();
lendingPool.finalizeLiquidation(userAddress);

Example Scenario:

  • Market crashes 30% in 1 hour

  • 100 positions become liquidatable

  • Each liquidation takes 1 minute to process

  • Total time to process all liquidations = 100 minutes

During this delay:

  • Market could drop further

  • More positions become underwater

  • Protocol accumulates bad debt

  • System becomes progressively more insolvent

Impact:

  • Delayed Liquidations: During market stress, the bottlenecked system cannot process liquidations quickly enough

  • Cascading Failures: Delayed liquidations lead to accumulation of bad debt, more positions becoming underwater, and increasing protocol insolvency risk

  • Single Point of Failure: Reliance on manager/owner creates additional risk if they become unavailable

  • Capital Inefficiency: Full liquidation requirement prevents optimal capital usage

Tools Used:

Manual code review

Recommendations:

  • Implement Permissionless Liquidations.

  • Enable Partial Liquidations.

Updates

Lead Judging Commences

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Validated
Assigned finding tags:

StabilityPool has no ability to liquidate large positions due to all-or-nothing design - partial liquidation not supported, risking protocol insolvency

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.

Give us feedback!