Summary:
The deadline check for the functions ScoreBoard:setPrediction
and ThePredicter:makePrediction
is implemented incorrectly.
Vulnerability Details:
The contracts allow players to make predictions until 19:00:00 UTC
on the day of the match. However, the implemented check is:
This translates to block.timestamp > AUG 15 20:00:00 + (MATCH_NUMBER * 19:00:00) - 19:00:00
, which incorrectly blocks predictions before 19:00:00
.
Proof of Concept:
A test was conducted to demonstrate the issue:
Impact:
High
Tools Used:
Manual review
Foundry
Recommendations:
Replace the incorrect time check with the following logic:
Update the following lines:
Add at ThePredicter: line 95
:
Add at ScoreBoard: line 73
:
Remove the existing checks:
Remove ThePredicter: line 95
:
Remove ScoreBoard: line 73
:
In both contracts there is a similar error in the computation of the timestamps of the matches.
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.