Kelp DAO | rsETH - McToady's results

A collective DAO designed to unlock liquidity, DeFi and higher rewards for restaked assets through liquid restaking.

General Information

Platform: Code4rena

Start Date: 10/11/2023

Pot Size: $28,000 USDC

Total HM: 5

Participants: 185

Period: 5 days

Judge: 0xDjango

Id: 305

League: ETH

Kelp DAO

Findings Distribution

Researcher Performance

Rank: 167/185

Findings: 1

Award: $2.76

QA:
grade-b

🌟 Selected for report: 0

🚀 Solo Findings: 0

Awards

2.7592 USDC - $2.76

Labels

bug
downgraded by judge
grade-b
insufficient quality report
QA (Quality Assurance)
edited-by-warden
duplicate-36
Q-60

External Links

Lines of code

https://github.com/code-423n4/2023-11-kelp/blob/main/src/LRTDepositPool.sol#L162

Vulnerability details

Impact

The function addNodeDelegatorContractToQueue doesn't check that any of the addresses to be added to nodeDelegatorQueue are unique, meaning the same address could be mistakenly added to the queue multiple times. This would lead to incorrect accounting when calling getTotalAssetDeposits as the asset balance of a contract would be counted twice. This in turn would lead to the rsETH price being returned by getRSETHPrice being too high. This means that any users who deposit into the protocol afterward the issue would receive less than their fair share of rsETH while prior depositors would be able to redeem their rsETH for more than their fair share of assets.

On top of this there is no way for the admins to remove a mistaken address from the nodeDelegatorQueue array so the contract would have to e redeployed to resolve the issue.

addNodeDelegatorContractToQueue already has a non zero address check so it's recommended that a check is added to ensure an address being added isn't already in the nodeDelegatorQueue array. This could be done by adding a state variable mapping (address => bool) public isNodeDelegatorContract that is then checked and assigned in addNodeDelegatorContractToQueue.

Assessed type

Invalid Validation

#0 - c4-pre-sort

2023-11-16T07:36:47Z

raymondfam marked the issue as insufficient quality report

#1 - c4-pre-sort

2023-11-16T07:36:54Z

raymondfam marked the issue as duplicate of #36

#2 - c4-judge

2023-11-29T21:35:51Z

fatherGoose1 changed the severity to QA (Quality Assurance)

#3 - c4-judge

2023-11-29T21:43:30Z

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