Dria

Swan
NFTHardhat
21,000 USDC
View results
Submission Details
Severity: medium
Invalid

LLMOracleManager does not implement `__gap`

Summary

LLMOracleManager does not implement __gap

Vulnerability Details

Upgradable contracts should implement a gap for the storage variables. This is done in order not to cause storage clashes in a future upgrade. These storage clashes happen when the inherited contract gets added a storage variable, which in tern moves every storage slot by 1 (or more) inside the contract which inherited this one. Such changes will disrupt the storage of the inheritor changing the value inside all of it's storage slots to something "weird".

Such a gap is missing inside LLMOracleManager, which is inherited by LLMOracleCoordinator .

contract LLMOracleCoordinator is LLMOracleTask, LLMOracleManager, UUPSUpgradeable {

Impact

Contract will be bricked after an upgrade.

Tools Used

Manual review.

Recommendations

Add __gap[50] to all inherited contracts in order to avoid storage clashes.

Updates

Lead Judging Commences

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.