L-14·
Strategy cannot be added after removal in AdminOperationalTreasury
TL;DR
Admin Can not add already removed strategy, because addStrategy function calls connect in strategy but it will revert since can be called once:
Severity
LOW
Method
MManual review
CAT.
Admin Can not add already removed strategy, because
addStrategy function calls connect in strategy but it will revert since can be called once:
solidity
function addStrategy(IStrategy s) external override onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE) {OperationalTreasuryStorage.SetUp storage setUp = OperationalTreasuryStorage.layout().setUp;if (setUp.acceptedStrategy[s]) revert StrategyAlreadyAdded();_connect(s, setUp);}function _connect(IStrategy s, OperationalTreasuryStorage.SetUp storage strg) internal {s.connect();strg.acceptedStrategy[s] = true;}
connect function in AdminStrategy contract can be called only once:
solidity
function connect() external override {StrategyStorage.SetUp storage setUp = StrategyStorage.layout().setUp;IOperationalTreasury treasury_ = IOperationalTreasury(msg.sender);if (address(setUp.treasury) != address(0)) revert TreasuryAlreadySet();setUp.treasury = treasury_;}
02Section · Report provenance
Report provenance
Published by Pashov Audit Group, with Carlos (Bloqarl) participating as a contractor. The source report states that its fixes review was not fully completed; no final remediation disposition is recorded for this finding. Read the full report.