MultiSig Timelock

First Flight #55
Beginner FriendlyWallet
100 EXP
Submission Details
Impact: low
Likelihood: low

Wrong Reentrancy Guard import

Author Revealed upon completion

Root + Impact

Description

  • In a multisig wallet that would obviously be involved in signing high-volume transactions, and also making external calls to contracts and protocols, a reentrancy guard not being imported correctly would cause error on compilation and testing.

  • The issue is that the MultiSigTimelock.sol contract cannot find the ReentrancyGuard.sol file in the @openzeppelin/contracts/utils

    folder.

pragma solidity ^0.8.19;
@> import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
// import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";

Risk

Likelihood: Low

  • The contract cannot be deployed for an attacker to even exploit it

Impact: Low

  • Error on running forge build

  • Error on running forge test

Proof of Concept

Recommended Mitigation

- import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
+ import {ReentrancyGuard} from "@openzeppelin/contracts/security/ReentrancyGuard.sol";

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.

Give us feedback!