all protocol tokens will be locked inside the pool contracts and the project will be unlaunchable
Proof of Concept
The ILOManager::initILOPool function does not limit the number of pools, allowing a protocol to initialize an excessive number of pools. Consequently, if a project will launch an excessive amount of pools, the ILOManager::launch and ILOManager::claimRefund functions, which iterate through all pools, will always revert due to a Denial of Service (DoS) caused by the large number of initialized pools.
Lines of code
https://github.com/code-423n4/2024-06-vultisig/blob/cb72b1e9053c02a58d874ff376359a83dc3f0742/src/ILOManager.sol#L187-L207 https://github.com/code-423n4/2024-06-vultisig/blob/cb72b1e9053c02a58d874ff376359a83dc3f0742/src/ILOManager.sol#L71-L107
Vulnerability details
Impact
all protocol tokens will be locked inside the pool contracts and the project will be unlaunchable
Proof of Concept
The
ILOManager::initILOPool
function does not limit the number of pools, allowing a protocol to initialize an excessive number of pools. Consequently, if a project will launch an excessive amount of pools, theILOManager::launch
andILOManager::claimRefund
functions, which iterate through all pools, will always revert due to a Denial of Service (DoS) caused by the large number of initialized pools.Tools Used
Manual Review
Recommended Mitigation Steps
Implement a limit on the number of
initializedPools
to prevent excessive initialization.Assessed type
DoS