#37595 [SC-Insight] `require_caller_is_bo_or_tm_or_sp_or_pm` did not emit correct message
Description
Brief/Intro
Vulnerability Details
#[storage(read)]
fn require_caller_is_bo_or_tm_or_sp_or_pm() {
let caller = msg_sender().unwrap();
let borrow_operations_contract = storage.borrow_operations_contract.read();
let valid_trove_manager = storage.valid_trove_managers.get(caller).try_read().unwrap_or(false);
let stability_pool_contract = storage.stability_pool_contract.read();
let protocol_manager_contract = storage.protocol_manager_contract.read();
require(
caller == protocol_manager_contract || caller == borrow_operations_contract || valid_trove_manager || caller == stability_pool_contract,
"Active Pool: Caller is not BorrowOperations, TroveManager, ProtocolManager, or DefaultPool",
);
}Impact Details
References
Proof of Concept
Proof of Concept
Previous#37452 [SC-Critical] `trove-manager-contract.redeem_collateral_from_trove` can be locked foreverNext#37607 [SC-Low] bricking redeem function
Last updated
Was this helpful?