The _update
function in your Solidity contract checks whether both from
and to
addresses are not whitelisted before allowing a transfer. However, if either the from
or to
address is whitelisted, the transfer is permitted, potentially allowing transfers to non-whitelisted addresses when from
is authorized.
The vulnerability lies in the conditional check:
This check ensures that neither from
nor to
addresses are whitelisted. However, this logic allows transfers if either from
or to
is authorized. If from
is authorized, the transfer can occur regardless of whether to
is authorized.
This logic flaw could allow transfers to unauthorized addresses when the sender (from
) is whitelisted. This could potentially bypass intended restrictions on token transfers to ensure compliance with regulatory requirements or project-specific rules.
Unauthorized Transfers: The current implementation allows transfers to occur even if the sender (from
address) is whitelisted, but the recipient (to
address) is not. This violates the intended restriction where transfers should only occur between whitelisted addresses. Unauthorized transfers could potentially lead to tokens being sent to addresses that are not intended to hold the tokens
Manual review
Update Conditional Check: Modify the conditional check in _update
to ensure that both from
and to
addresses are authorized for the transfer to proceed:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.