DittoETH

Ditto
DeFiFoundryOracle
55,000 USDC
View results
Submission Details
Severity: low
Invalid

Race Condition on NFT Transfer

Summary

An NFT transfer and short record update are not atomic.

Vulnerability Details

When transferring an NFT short position in LibShortRecord.transferNFT, the short record is updated before the NFT transfer.

This creates a race condition where a reentrancy call could split them.

Impact

Short record and NFT ownership could become out of sync.

Tools Used

Manual

Recommendations

Use a mutex lock to ensure atomicity:

mutex.lock();
updateShortRecord(id);
transferNFT(tokenId);
mutex.unlock();
Updates

Lead Judging Commences

0xnevi Lead Judge
almost 2 years ago
0xnevi Lead Judge almost 2 years ago
Submission Judgement Published
Invalidated
Reason: Other

Support

FAQs

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