Ethena Labs - PENGUN's results

Enabling The Internet Bond

General Information

Platform: Code4rena

Start Date: 24/10/2023

Pot Size: $36,500 USDC

Total HM: 4

Participants: 147

Period: 6 days

Judge: 0xDjango

Id: 299

League: ETH

Ethena Labs

Findings Distribution

Researcher Performance

Rank: 139/147

Findings: 1

Award: $4.52

QA:
grade-b

🌟 Selected for report: 0

🚀 Solo Findings: 0

Lines of code

https://github.com/code-423n4/2023-10-ethena/blob/ee67d9b542642c9757a6b826c82d0cae60256509/contracts/StakedUSDeV2.sol#L116

Vulnerability details

Impact

USDe cannot be used in defi. This affects the usability of USDe and prevents it from bringing in more users.

Proof of Concept

To stake and unstake USDe, user need to wait for the cooldown period. User can send an unstake request through the cooldownShares function, where cooldownEnd is dependent on owner.

  function cooldownShares(uint256 shares, address owner) external ensureCooldownOn returns (uint256) {
    if (shares > maxRedeem(owner)) revert ExcessiveRedeemAmount();

    uint256 assets = previewRedeem(shares);

    cooldowns[owner].cooldownEnd = uint104(block.timestamp) + cooldownDuration;
    cooldowns[owner].underlyingAmount += assets;

    _withdraw(_msgSender(), address(silo), owner, assets, shares);

    return assets;
  }

Assuming a cooldownDuration of 14 days, if user A requests 1000 USDe to unstake, and then 10 days later requests 500 USDe again, they will have to wait 14 days from the second request. This is not good from a UX perspective and prevents the creation of defi utilizing USDe.

Tools Used

VS Code

Manage the underlyingAmount by withdraw, not by owner.

Assessed type

Other

#0 - c4-pre-sort

2023-10-31T05:13:47Z

raymondfam marked the issue as sufficient quality report

#1 - c4-pre-sort

2023-10-31T05:14:04Z

raymondfam marked the issue as duplicate of #4

#2 - c4-pre-sort

2023-11-01T19:36:37Z

raymondfam marked the issue as duplicate of #514

#3 - c4-judge

2023-11-10T21:26:59Z

fatherGoose1 marked the issue as unsatisfactory: Invalid

#4 - c4-judge

2023-11-17T17:04:09Z

fatherGoose1 changed the severity to QA (Quality Assurance)

#5 - c4-judge

2023-11-20T20:19:33Z

fatherGoose1 marked the issue as grade-b

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter