[M-2] Potential Storage Slot Collision
Description:
The ORIGINAL variable is stored in a private immutable slot, but there is no explicit comment or documentation ensuring this storage slot doesn't collide with other contracts that might inherit from NoDelegateCall.
Impact:
Inheriting contracts could inadvertently overwrite the ORIGINAL variable if they use the same storage slot, leading to unintended behavior.
Proof of Concept:
Deploy a contract inheriting NoDelegateCall and another contract that also uses a private immutable variable in the same storage slot.
Recommended Mitigation:
Document the storage slot usage and ensure derived contracts use distinct storage slots.
Mitigation Code:
Add documentation to inform developers about the storage slot usage:
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.