Attacker can create an ask offer using createOffer()
with a non zero CreateOfferParams.eachTradeTax
. When a taker buys the attackers offer by calling createTaker()
, attacker can call abortAskOffer()
and then withdraw()
their funds, stealing the trade tax. This can be done risk free.
Here's a POC that can be added toPremarket.t.sol
:
Loss of funds.
Manual review / Foundry
Consider adding logic that returns the trade tax to Taker on abortOffer()
.
Valid high severity, given orginal offer makers are not a trusted entity to enforce a settlement. The trade tax set by the maker should be returned back to the takers to avoid abuse of abortion of ask offers to steal trade tax from takers. Note for appeals period: See issue #528 for additional details
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.