The deployUpgradeableProxy function in TadleFactory.sol uses the create opcode to deploy new proxy instances. This method is vulnerable to chain reorgs, which are prevalent on Ethereum and other EVM-compatible chains.
TadleFactory.sol deploys new proxy instances using create in deployUpgradeableProxy function
As stated in the protocol's README Tadle is compatible with "Ethereum/Any EVM"
Chain reorgs are very prevalent in Ethereum mainnet and also on L2's like Arbitrum or Polygon or Blast,etc.
These re-orgs can potentially invalidate the deployment of the proxy instances, leading to issues with the Tadle protocol.
Ethereum: forked blocks index
Polygon: 157 blocks depth
Optimistic rollups (Optimism/Arbitrum) are also suspect to reorgs since if someone finds a fraud the blocks will be reverted, even though the user receives a confirmation.
Current deployment method of the proxy contracts is unsafe considering a re-org attack would allow an attacker take over the contract, also protocol has stated they are to deploy on any EVM compatible chain which then heavily increases the likelihood of this occurring.
Manual Review
Consider using create2 and a non-constant salt value when deploying.
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.