Yeti Finance contest - dalgarim's results

Portfolio borrowing. 11x leverage. 0% interest.

General Information

Platform: Code4rena

Start Date: 16/12/2021

Pot Size: $100,000 USDC

Total HM: 21

Participants: 25

Period: 7 days

Judge: alcueca

Total Solo HM: 12

Id: 66

League: ETH

Yeti Finance

Findings Distribution

Researcher Performance

Rank: 8/25

Findings: 3

Award: $3,851.68

🌟 Selected for report: 1

πŸš€ Solo Findings: 0

Findings Information

🌟 Selected for report: jayjonah8

Also found by: dalgarim, kenzo

Labels

bug
duplicate
3 (High Risk)
disagree with severity

Awards

1434.4958 USDC - $1,434.50

External Links

Handle

dalgarim

Vulnerability details

Impact

The comment on the "StabilityPool.receiveCollateral" function states that this function should be called by ActivePool. However this function doesn't implement access control which checks whether the caller is actually ActivePool or not. As this function emit the "StabilityPoolBalancesUpdated" event, malicious user can contaminate events log by calling this function many times.

Proof of Concept

receiveCollateral

// Should be called by ActivePool // __after__ collateral is transferred to this contract from Active Pool function receiveCollateral(address[] memory _tokens, uint256[] memory _amounts) external override { totalColl.amounts = _leftSumColls(totalColl, _tokens, _amounts); emit StabilityPoolBalancesUpdated(_tokens, _amounts); }

Tools Used

Manual

Adding _requireCallerIsActivePool() on the function is required.

#0 - kingyetifinance

2022-01-05T09:16:41Z

@LilYeti: This is actually a very severe issue, and should be severity 3 like duplicate issue #74 Congrats @dalgarim

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