Christmas Dinner

First Flight #31
Beginner FriendlyFoundrySolidity
100 EXP
View results
Submission Details
Severity: medium
Invalid

Unprotected Deadline Extension

Description: While setDeadline can only be called once, it allows setting an arbitrarily long deadline.

The actual vulnerability is found here:

function setDeadline(uint256 _days) external onlyHost {
if(deadlineSet) {
revert DeadlineAlreadySet();
} else {
deadline = block.timestamp + _days * 1 days;
emit DeadlineSet(deadline);
}
}

Impact:

  • Potential indefinite fund lock

  • Trust exploitation

  • User fund inaccessibility

Recommended Mitigation: Add a maximum deadline limit:

uint256 public constant MAX_DEADLINE_DAYS = 30;
function setDeadline(uint256 _days) external onlyHost {
require(_days <= MAX_DEADLINE_DAYS, "Deadline too far in future");
require(_days > 0, "Deadline must be future date");
if(deadlineSet) {
revert DeadlineAlreadySet();
}
deadline = block.timestamp + _days * 1 days;
deadlineSet = true;
emit DeadlineSet(deadline);
}
Updates

Lead Judging Commences

0xtimefliez Lead Judge 7 months ago
Submission Judgement Published
Invalidated
Reason: Design choice
0xtimefliez Lead Judge 7 months ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.