Popcorn contest - halden's results

A multi-chain regenerative yield-optimizing protocol.

General Information

Platform: Code4rena

Start Date: 31/01/2023

Pot Size: $90,500 USDC

Total HM: 47

Participants: 169

Period: 7 days

Judge: LSDan

Total Solo HM: 9

Id: 211

League: ETH

Popcorn

Findings Distribution

Researcher Performance

Rank: 117/169

Findings: 1

Award: $35.48

QA:
grade-b

🌟 Selected for report: 0

🚀 Solo Findings: 0

[01-I] Already existing clone can be added in CloneRegistry

Currently, only the owner can add new clone in CloneRegistry but to prevent from some mistakes from adding of existing clone should be good to have check if the clone is already added. File CloneRegistry.sol: line 41

[02-I] Mismatched comment above external function

Mismatched comment with function logic. DeploymentController.sol: [60][https://github.com/code-423n4/2023-01-popcorn//blob/main/src/vault/DeploymentController.sol#L60]

[03-I] Template with invalid implementation address can be added

Zero address or just EOA address can be setted to implementation of the Template. Nowhere is checked if the implementation address is not zero or is a smart contract. TemplateRegistry.sol: (https://github.com/code-423n4/2023-01-popcorn//blob/main/src/vault/TemplateRegistry.sol#L67-L81)

[04-I] acceptDependencyOwnership can be called by everyone

acceptDependencyOwnership should be called only from the AdminProxy which will expect to accept ownership. File DeploymentController.sol: 131

[05-I] Immutable variable not setted in constructor should be mark as constant

State variables can be declared as constant or immutable. In both cases, the variables cannot be modified after the contract has been constructed. For constant variables, the value has to be fixed at compile-time, while for immutable, it can still be assigned at construction time.

VaultController.sol: 36-40

[08-I] Missed NatSpec

In some places in the contract is missed good NatSpec comment. The good commented code increase readability.

[09-I] Missed check for MALLEABILITY value for S

In function permit before ecrecover() is missed check for malleable value for S. resource: https://eips.ethereum.org/EIPS/eip-1271 File MultiRewardStaking: 445-L485 Also in AdapterBase

[10-I] Do not use magic varaible

Do not use magic variable use declare constant AdapterBase.sol: 502 Use constant variable for version for computing of domain separator. File Vault.sol: line [724] (https://github.com/code-423n4/2023-01-popcorn//blob/main/src/vault/Vault.sol#L724)

#0 - c4-judge

2023-02-28T15:10:47Z

dmvt 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