Mimo August 2022 contest - ak1'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: 48/69

Findings: 1

Award: $74.55

🌟 Selected for report: 0

🚀 Solo Findings: 0

  1. Using the exact solidity version is recommended instead of using like this pragma solidity >=0.8.4; Use this way pragma solidity 0.8.4

  2. https://github.com/code-423n4/2022-08-mimo/blob/eb1a5016b69f72bc1e4fd3600a65e908bd228f13/contracts/proxy/MIMOProxy.sol#L30

    minGasReserve = 5_000; - Hardcoding minmum gas fee will not be safe always. in future gas fee range can vary.

    It is recommended to set gas using the variable while initializing.

  3. https://github.com/code-423n4/2022-08-mimo/blob/eb1a5016b69f72bc1e4fd3600a65e908bd228f13/contracts/proxy/MIMOProxy.sol#L54

    function execute(address target, bytes calldata data) public payable override returns (bytes memory response)

    It could be safe always to include Non-ReEntrancy modifier in above function.

  4. https://github.com/code-423n4/2022-08-mimo/blob/eb1a5016b69f72bc1e4fd3600a65e908bd228f13/contracts/proxy/MIMOProxy.sol#L67

    if (target.code.length == 0) { revert CustomErrors.TARGET_INVALID(target); }

    Checking contract code length may not be safe.

  5. https://github.com/code-423n4/2022-08-mimo/blob/eb1a5016b69f72bc1e4fd3600a65e908bd228f13/contracts/proxy/MIMOProxy.sol#L127-L132

    Its best practice to check both array length matches before start looping.

    if (msg.sender != owner) {
     revert CustomErrors.NOT_OWNER(owner, msg.sender);
    }
    bytes[] memory results = new bytes[](data.length);
    for (uint256 i = 0; i < targets.length; i++) {```
    
    If  `targets` and `data` array length are equal then continue further operation.
    
  6. Instead of using Errors CustomErrors, it is recommended to use all erros in single place which might be useful for future reference.

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