Category: Business Logic
OracleReader does not have a storage gap
Low Severity
Low Impact
N/A Likelihood
Description
When using upgradable contracts, storage gaps are used for reserving storage slots in a base contract, allowing upgrades of that contract to use up those slots without affecting the storage layout. However, the upgradable contract OracleReader does not have a storage-gap variable, and it is inherited by other contracts — for example, the contract BalancerOracleAdapter.
Impact
If new storage variables are added to the contract OracleReader in the future, it will affect the storage variables in the child contract.
Recommendations
Consider adding a gap variable to be safe against storage collisions.
Remediation
This issue has been acknowledged by Plaza Finance, and a fix was implemented in commit 8e298db4↗.