This repository has been archived by the owner on May 26, 2023. It is now read-only.
jkoppel - NFTs cannot be claimed from ongoing bounties; will be stuck forever when refunds disabled #403
Labels
Duplicate
A valid issue that is a duplicate of an issue with `Has Duplicates` label
Escalation Resolved
This issue's escalations have been approved/rejected
Excluded
Excluded by the judge without consulting the protocol or the senior
Non-Reward
This issue will not receive a payout
jkoppel
medium
NFTs cannot be claimed from ongoing bounties; will be stuck forever when refunds disabled
Summary
OngoingBountyV1 can accept NFT deposits but will never release them in claims. They can only be retrieved by refunds. However, a separate issue ( https://github.com/sherlock-audit/2023-02-openq-jkoppel/issues/3 ) makes it possible to disable refunds, causing it to be stuck.
Vulnerability Detail
Impact
Anyone who accidentally sends an NFT to an ongoing bounty may lose it forever.
Code Snippet
https://github.com/sherlock-audit/2023-02-openq/blob/main/contracts/Bounty/Implementations/OngoingBountyV1.sol#L133 provides an implementation of receiveNFT, same as the other bounty types. However, claimOngoingPayout ( https://github.com/sherlock-audit/2023-02-openq/blob/main/contracts/Bounty/Implementations/OngoingBountyV1.sol#L96 ) does not release the NFTs.
Tool used
Manual Review
Recommendation
Revert all NFT deposits to an OngoingBounty
Duplicate of #261
The text was updated successfully, but these errors were encountered: