Anyone can claim token with Airdrop even he don't have soulmate or are random user
Everyone can claim a LoveToken in the Airdrop, whether the user has a soulmate or not, or even if they have never minted a token, they can collect LoveTokens via Airdrop. This is due to an error in the Airdrop.claim method.
Users can claim the Airdrop multiple times even if they are divorced, Airdrop Vaut is giving token to user that shouldn't be benifeciary
##Proof of Concept:
The test case below, to be included in AirdropTest.sol, demonstrates that when a user claims an Airdrop without being divorced, it does not revert as expected.
AirdropTest.t.test
foundry
It is necessary to check the value of soulmateContract.idToCreationTimestamp(soulmateContract.ownerToId(msg.sender)) and revert a custom error if the value is equal to 0.
Airdrop.sol
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.