Watchers::verifyRemoveLiquidity
is missing implementation logic
#1434
Labels
bug
Something isn't working
downgraded by judge
Judge downgraded the risk level of this issue
duplicate-1520
grade-a
insufficient quality report
This report is not of sufficient quality
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
🤖_385_group
AI based duplicate group recommendation
Lines of code
https://github.com/code-423n4/2024-04-noya/blob/9c79b332eff82011dcfa1e8fd51bad805159d758/contracts/governance/Watchers.sol#L8
https://github.com/code-423n4/2024-04-noya/blob/9c79b332eff82011dcfa1e8fd51bad805159d758/contracts/helpers/BaseConnector.sol#L94
Vulnerability details
https://docs.noya.ai/technical-architecture/technical-architecture/roles-in-noya
The
Watchers
role is responsible to make sure the execution of NOYA is going on correctly. If there is any misbehaving (like price manipulation or any suspicious actions from the keepers) the watchers can undo the action.In the current implementation of the
BaseConnector::sendTokensToTrustedAddress
there is a call to theWatchers
contract and more specifically theverifyRemoveLiquidity
function that takes in 3 arguments - amount, newAmount and newData.However, inside the
Watchers::verifyRemoveLiquidty
, there is no implementation logic and nothing is being done with the passed arguments from the call made inBaseConnector::sendTokensToTrustedAddress
.Impact
The
Watchers
contract is missing its implementation logic, effectively leaving the protocol without a functioningWatchers
role. This role is crucial for ensuring the integrity of strategy execution and for monitoring any misbehavior from the keepers.Proof of Concept
https://github.com/code-423n4/2024-04-noya/blob/main/contracts/governance/Watchers.sol#L8
Tools Used
Manual Review
Recommended Mitigation Steps
Add the missing implementation logic to the
Watchers::verifyRemoveLiquidity
function to ensure that theWatchers
contract has the necessary logic to fulfill its role.Assessed type
Invalid Validation
The text was updated successfully, but these errors were encountered: