Once the block.timestamp - idToCreationTimestamp(0)
is past one day, an uninitialized address can take exploit the absence of access control to claim (LoveToken) rewards and with sufficient time steal all the LoveTokens available in the Airdrop Vault.
Proof of Code:
In your foundry test suite, set up your Test
based contract with the functions below:
In the same file containing your initialized test as above, paste this Attack Contract below:
LoveToken gets stolen by an unauthorized party and a potential loss of all tokens within the Airdop Vault
Foundry
Manual Code Review
High severity, This issue is separated from the flawed `isDivorced()` check presented in issue #168 as even if that is fixed, if ownership is not checked, isDivorced would still default to false and allow bypass to claim airdrops by posing as tokenId 0 in turn resulting in this [important check for token claim is bypassed.](https://github.com/Cyfrin/2024-02-soulmate/blob/b3f9227942ffd5c443ce6bccaa980fea0304c38f/src/Airdrop.sol#L61-L66). #220 is the most comprehensive issue as it correctly recognizes both issues existing within the same function.
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.