Submitted by sseefried
A Staker  that has their top-up position removed after execute is called by a Keeper  can always cause the transaction to revert. They can do this by deploying a smart contract to the payer address that has implemented a receive() function that calls revert(). The revert will be triggered by the following lines in execute
This will consume some gas from the keeper while preventing them accruing any rewards for performing the top-up action.
I have implemented a PoC in a fork of the contest repo. The attackers contract can be found here.
To prevent this denial of service attack some way of blacklisting badly behaved Stakers should be added.
chase-manning (Backd) confirmed
For this contest, 39 reports were submitted by wardens detailing low risk and non-critical issues. The report highlighted below by IllIllI received the top score from the judge.
The following wardens also submitted reports: horsefacts, sseefried, robee, defsec, hubble, 0xDjango, sorrynotsorry, berndartmueller, Dravee, joestakey, StyxRave, 0xkatana, csanuragjain, dipp, hake, kebabsec, pauliax, peritoflores, securerodd, z3s, 0v3rf10w, 0x52, catchup, fatherOfBlocks, Funen, jayjonah8, Kenshin, kenta, m4rio_eth, oyc_109, rayn, remora, Ruhum, simon135, Tadashi, TerrierLover, TrungOre, and antonttc.
Vulnerability details:
