Petite Pewter Orangutan
High
CollateralManager::setCollateralEscrowBeacon can be called by anyone.
No response
No response
No response
No response
An attacker can set the escrow beacon and drain funds.
As we can see it has reinitializer
, which means it can be changed.
CollateralManager::setCollateralEscrowBeacon
/**
* @notice Sets the address of the Beacon contract used for the collateral escrow contracts.
* @param _collateralEscrowBeacon The address of the Beacon contract.
*/
function setCollateralEscrowBeacon(address _collateralEscrowBeacon)
external
reinitializer(2)
{
collateralEscrowBeacon = _collateralEscrowBeacon;
}
for setCollateralEscrowBeacon()
set onlyTellerV2
modifier.