Part 2

Zaros
PerpetualsDEXFoundrySolidity
70,000 USDC
View results
Submission Details
Severity: medium
Invalid

[M-2] Reentrancy in Settlement Process at PerpsEngine

Summary

The SettlementBranch transfers funds before updating balances, enabling reentrancy attacks.

Vulnerability Details

Affected Code:

// SettlementBranch.sol (hypothetical)
function settleProfit(address user, uint256 amount) public {
usdToken.transfer(user, amount); // External call
balances[user] -= amount; // State update after
}

Exploit Scenario:

  1. Attacker creates contract with reentrant transfer hook.

  2. Calls settleProfit, triggering reentrancy during transfer.

  3. Drains protocol funds via recursive calls.

Impact

Fund Drainage: Critical but mitigated by gas limits.

Medium Severity (CVSS 6.9).

Tools used:

Manual Review

Foundry

Recommendations

// Apply Checks-Effects-Interactions pattern
function settleProfit(address user, uint256 amount) public {
balances[user] -= amount;
usdToken.transfer(user, amount);
}
Updates

Lead Judging Commences

inallhonesty Lead Judge 5 months ago
Submission Judgement Published
Invalidated
Reason: Lack of quality

Support

FAQs

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