Closed code423n4 closed 3 years ago
heiho1
Pool._addPoolMetrics(uint256) on line 338 is potentially subject to miner manipulation due to a reliance for time comparison against block.timestamp.
https://github.com/code-423n4/2021-07-spartan/blob/e2555aab44d9760fdd640df9095b7235b70f035e/contracts/Pool.sol#L338
https://solidity-by-example.org/hacks/block-timestamp-manipulation/
Slither
An external time oracle like ChainLink Alarm Clock is worth consideration: https://blog.chain.link/blockchain-voting-using-a-chainlink-alarm-clock-oracle/
The values updated by _addPoolMetrics are for UI purposes and do not need to be accurate, the limited miner-manipulation potential is no cause for concern here. Non-critical.
Duplicate of #201
Non-critical
Handle
heiho1
Vulnerability details
Impact
Pool._addPoolMetrics(uint256) on line 338 is potentially subject to miner manipulation due to a reliance for time comparison against block.timestamp.
Proof of Concept
https://github.com/code-423n4/2021-07-spartan/blob/e2555aab44d9760fdd640df9095b7235b70f035e/contracts/Pool.sol#L338
https://solidity-by-example.org/hacks/block-timestamp-manipulation/
Tools Used
Slither
Recommended Mitigation Steps
An external time oracle like ChainLink Alarm Clock is worth consideration: https://blog.chain.link/blockchain-voting-using-a-chainlink-alarm-clock-oracle/