_isContract(...) check may be bypassed to install modules on malicious accounts.
The code in question is K1Validator::_isContract(...):
The code checks if account is a contract. It examines the code size of its address. However, if a call is made to this function from within a contract's constructor, _isContract(account) returns false despite account being a contract.
If all the installation logic is crafted inside a constructor,_isContract(...) check may be bypassed:
Therefore, a smart contract may own a smart account, undermining K1Validator trust.
Manual review.
Invalid [known issue [Medium-3]](https://github.com/Cyfrin/2024-07-biconomy/issues/1)
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.