Open c4-submissions opened 12 months ago
0xfoobar (sponsor) disputed
If there's going to be blockchain downtime you should extend before the blockchain goes down, lmfao
GalloDaSballo changed the severity to QA (Quality Assurance)
Not convinced this has any impact, leaving as informational
NOTE: yet to rate QA for this Warden
GalloDaSballo marked the issue as grade-b
I think the impact is when sequencer goes down, it leave user no time to extend the expiration deadline
and the sequencer can go down because of bug so the user cannot be informed before
https://beincrypto.com/arbitrum-sequencer-bug-causes-temporary-transaction-pause/
but I highly respect judge's expertise and will respect judge's final decision on severity!
This is a ridiculous report, a core axiom of smart contracts is that the underlying blockchain is live. It is trivial and obvious and almost insulting to the reader's intelligence to report that "a function cannot be called if the blockchain is dead". Why are we even discussing this? Extending needs to be done ahead of time, if not then the PT owner can trivially recreate a new DT and give to the old holder.
Please do not be mad sir,
srry I see this is can be done
if not then the PT owner can trivially recreate a new DT and give to the old holder.
Agree this submission is not valid :)
Technically speaking the sequencer going down will queue the tx in the queue or in the mailbox Those will be re-peated in order once the L2 comes back online This means that the observation is technically incorrect as the queue and time would actually be re-inforced once the L2 re-starts
Lines of code
https://github.com/code-423n4/2023-09-delegate/blob/a6dbac8068760ee4fc5bababb57e3fe79e5eeb2e/src/DelegateToken.sol#L339 https://github.com/code-423n4/2023-09-delegate/blob/a6dbac8068760ee4fc5bababb57e3fe79e5eeb2e/src/DelegateToken.sol#L353
Vulnerability details
Impact
Bot can rescind and withdraw after the L2 sequecer goes down and up
Proof of Concept
The delegate protocol intended to deploy to EVM chain, including L2 such as optimism and arbitrum
The delegate token implements the function below:
However, the rescind and withdraw does not have access control after the expiry
when the L2 Sequencer goes down to delegate token is forced to expire,
For example, the recent optimism bedrock upgrade cause the sequencer not able to process transaction for a hew hours
https://cryptopotato.com/optimism-bedrock-upgrade-release-date-revealed/
In Arbitrum
and
https://beincrypto.com/arbitrum-sequencer-bug-causes-temporary-transaction-pause/
when the sequencer goes down and up
the bot can call rescind and withdraw and burn the principle token directly fast and leave user no time to extend the expiry deadline
Tools Used
Manual Review
Recommended Mitigation Steps
chainlink has a sequencer up feed
https://docs.chain.link/data-feeds/l2-sequencer-feeds
consider integrate the up time feed and give user extra time to extend the expiration when sequencer goes up after goes down
also, access control should be added to rescind and withdraw even after expiry
Assessed type
Timing