You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The BosonVoucherBase::withdrawToProtocol function does not apply any access control to its caller, permitting anyone to invoke it and thus cause funds from the contract to be deposited to the protocol.
While the funds will still be owned by the correct sellerId, the BosonVoucherBase contract is capable of being the "purchaser" of a conditional offer in the Boson Protocol system. These conditional offers can impose restrictions based on EIP-20 asset balances that can be compromised by this function in an on-chain race condition.
Impact:
It is presently possible to hijack threshold-based commit authorizations that are performed by the BosonVoucherBase by invoking its BosonVoucherBase::withdrawToProtocol function.
BVR-03M: Inexistent Access Control of Protocol Withdrawals
Description:
The
BosonVoucherBase::withdrawToProtocol
function does not apply any access control to its caller, permitting anyone to invoke it and thus cause funds from the contract to be deposited to the protocol.While the funds will still be owned by the correct
sellerId
, theBosonVoucherBase
contract is capable of being the "purchaser" of a conditional offer in the Boson Protocol system. These conditional offers can impose restrictions based on EIP-20 asset balances that can be compromised by this function in an on-chain race condition.Impact:
It is presently possible to hijack threshold-based commit authorizations that are performed by the
BosonVoucherBase
by invoking itsBosonVoucherBase::withdrawToProtocol
function.Example:
Recommendation:
We advise the code to apply proper access control and ensure that the function can only be called by the
OwnableUpgradeable::owner
of the contract.The text was updated successfully, but these errors were encountered: