The epoch updates of the FjordStaking
and FjordPoints
contracts are not synchronized, resulting in users being able to obtain Points at almost no cost.
The epoch update method of the FjordStaking
contract is using function getEpoch
.
The epoch update of the contract FjordPoints
is in the function distributePoints
.
Although their cycles are both one week, the different starting times result in different update times. Therefore, an attacker can stake when the epoch of the contract FjordPoints
is about to be updated, but the epoch of the contract FjordStaking
will not be updated, and then unstake after the epoch of the contract FjordPoints
is updated, thereby obtaining Points in a short time.
Attackers can obtain Points at almost no cost.
Vscode
The startTime of FjordStaking
should be added with padding to synchronize with the contract FjordPoints
.
Impact: High - Users are getting an unreasonable amount of points through exploiting a vulnerability Likelihood: Low - Most of the times, when using the script, all deployment tx will get processed in the same block. But, there is a small chance for them to be processed in different blocks.
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.