The fallback() in this contract will return a false positive transaction when this contract is executing a transaction from executeTransaction() to this contract address, but this contract didn't have the correct call data, instead of reverting the transaction on low level, instead, it will return true on success https://github.com/code-423n4/2022-01-openleverage/blob/main/openleverage-contracts/contracts/gov/Timelock.sol#L137, this can happen because the fallback() will catch the wrong call data.
Handle
Tomio
Vulnerability details
Impact
The fallback() in this contract will return a false positive transaction when this contract is executing a transaction from executeTransaction() to this contract address, but this contract didn't have the correct call data, instead of reverting the transaction on low level, instead, it will return true on success https://github.com/code-423n4/2022-01-openleverage/blob/main/openleverage-contracts/contracts/gov/Timelock.sol#L137, this can happen because the fallback() will catch the wrong call data.
Proof of Concept
https://github.com/code-423n4/2022-01-openleverage/blob/main/openleverage-contracts/contracts/gov/Timelock.sol#L41
Tools Used
Recommended Mitigation Steps
Delete fallback()