Skip to content

Latest commit

 

History

History
37 lines (19 loc) · 1.35 KB

File metadata and controls

37 lines (19 loc) · 1.35 KB

Wobbly Chrome Cuckoo

Medium

Deploying HSG with an already existing Safe can break protocol invariants and brick the HSG

Summary

In the setUp() function there are no checks to ensure that the Safe being pointed to has the HSG contract enabled as the only module. As a result, the protocol invariant of 'There should never be more than 1 module enabled on the safe' may be violated. If the Safe has more than one module, then functionality will be bricked (signers will not be able to execute transactions) due to the state check failing. Since the HSG can't point itself to another Safe, the HSG contract will be rendered useless.

Root Cause

See above.

Internal pre-conditions

HSG is setup with an already existing Safe that has a module enabled (which is not the HSG).

External pre-conditions

No response

Attack Path

See summary.

Impact

Signers can't execute any Safe transactions until the HSG detaches itself from the Safe. The HSG is bricked.

PoC

No response

Mitigation

Add checks to ensure that the Safe being pointed to in setUp() does not break protocol invariants.