payForTransaction
does not have any access control and, consequently, can be called by anyone any number of times.
payForTransaction
is a method intended for paying the Bootloader
for transactions. As such, it should be called only by the Bootloader
, but this restriction is not implemented. Consequently, anyone can call this function with arbitrary transactions, as demonstrated by the following test:
A malicious user can keep calling payForTransaction
until the wallet transfers all of its ether to the Bootloader
.
Manual review, Foundry.
Restrict access to the function so that only the Bootloader
can call it:
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.