Mimo August 2022 contest - bobirichman's results

Bridging the chasm between the DeFi world and the world of regulated financial institutions.

General Information

Platform: Code4rena

Start Date: 02/08/2022

Pot Size: $50,000 USDC

Total HM: 12

Participants: 69

Period: 5 days

Judge: gzeon

Total Solo HM: 5

Id: 150

League: ETH

Mimo DeFi

Findings Distribution

Researcher Performance

Rank: 33/69

Findings: 2

Award: $115.29

🌟 Selected for report: 0

🚀 Solo Findings: 0

QA REPORT

[LOW] Missing nonReentrancy modifier

The following functions allows attackers to try reentrancy since they are calling to external contracts / transferring eth. Consider adding a nonReentrancy modifier.

Proof of concept:

[LOW] Add timelock for the following functions

Using a timelock in the following type of functions is common among defi protocols.

Proof of concept:

[LOW] Not verified input

At the following functions you should verify the parameters that are being assigned to a state variable.

Proof of concept:

[LOW] Payable functions that should not be payable

The following functions are payable but doesn't record the sender transaction. Consider making them not payable instead.

Proof of concept:

[NON CRITICAL] Floating pragma

Floating pragma is a bad practice, since it does not guaranty the same version at future deployments.

Proof of concept:

[NON CRITICAL] Missing function spec comments

Proof of concept:

[NON CRITICAL] Consider emitting an event at the following functions

Proof of concept:

[NON CRITICAL] Unused function parameters should have name removed

If for any reason the following unused parameters are necessary then remove their naming (since only the type matters for function signature)

Proof of concept:

GAS REPORT

[GAS] Use abiEncodePacked()

Proof of concept:

[GAS] Cache array size

You can cache the array size to improve gas usage in the following locations Example: DexAddressProvider.sol#L22

[GAS] Do not cache msg.sender since loading msg.sender is more efficient than a local variable

Proof of concept:

[GAS] Use > instead != to compare uint with 0

Example: MIMORebalance.sol#L134

[GAS] In the following revert statements consider using custom error instead a message

Proof of concept:

[GAS] Use assembly opcodes iszero in the following locations

Proof of concept:

[GAS] Mark as payable If has onlyOwner modifier

In order to save gas you can put a payable modifier for functions that are called by protocol owners. Example: DexAddressProvider.sol#L39

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