The Proxy contract potentially presents a storage collision risk due to non-adherence to the guidelines of EIP1967, which could lead to overwriting of variables and unintended behavior.
In the implementation of Proxy, the proxy and its logic share the same storage layout. This sharing may cause storage collisions, bringing a risk of variables being overwritten in an unpredictable manner. EIP1967 was proposed to circumvent such storage collisions by recommending proxy variables to be set at fixed positions.
Notably, this contract inherits from Ownable, with the _implementation variable located at the first slot. This poses a risk of _implementation being overwritten during implementation.
Due to storage collisions, variables might be overwritten, leading to unpredictable behaviors. This can potentially compromise the safety and functionality of the contract.
Manual code review
Consider adhering to the guidelines of EIP1967.
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.