Stader Labs - martin's results

Decentralized ETH liquid staking protocol with 4 ETH bond for anyone to be a node operator.

General Information

Platform: Code4rena

Start Date: 02/06/2023

Pot Size: $100,000 USDC

Total HM: 15

Participants: 75

Period: 7 days

Judge: Picodes

Total Solo HM: 5

Id: 249

League: ETH

Stader Labs

Findings Distribution

Researcher Performance

Rank: 34/75

Findings: 1

Award: $102.27

🌟 Selected for report: 0

🚀 Solo Findings: 0

Findings Information

Awards

102.2712 USDC - $102.27

Labels

bug
2 (Med Risk)
satisfactory
duplicate-383

External Links

Lines of code

https://github.com/code-423n4/2023-06-stader/blob/main/contracts/Auction.sol#L14 https://github.com/code-423n4/2023-06-stader/blob/main/contracts/OperatorRewardsCollector.sol#L12 https://github.com/code-423n4/2023-06-stader/blob/main/contracts/SocializingPool.sol#L17 https://github.com/code-423n4/2023-06-stader/blob/main/contracts/StaderOracle.sol#L17

Vulnerability details

Impact

The pause() and unpause() methods are actually internal, so if your contract does not expose them externally you have no way of using pausability. In contrast in ETHx, PermissionedNodeRegistry, StaderStakePoolsManager and UserWithdrawalManager for example the pattern implementation is totally correct.

Proof of Concept

There aren't externally exposed pause and unpause methods, so it's impossible to use this functionality as expected.

Tools Used

Manual Review

The pause() and unpause() methods should be exposed in the code of the contract which inhertits PausableUpgradeable. Add these external methods with the proper access control in Auction.sol, OperatorRewardsCollector.sol, SocializingPool.sol and StaderOracle.sol.

Assessed type

Library

#0 - c4-judge

2023-06-14T18:51:15Z

Picodes marked the issue as duplicate of #383

#1 - c4-judge

2023-07-02T09:44:14Z

Picodes marked the issue as satisfactory

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