The LightChaser
detected this issue as [Medium-2], but it missed the same issue in two other contracts: SablierV2LockupDynamic
and SablierV2LockupLinear
.
The SablierV2LockupDynamic
and SablierV2LockupLinear
contracts use _mint()
instead of _safeMint()
when minting, which can result in minting a Sablier V2 Lockup NFT to a contract that does not support NFTs.
The issue lies in the _create
function of the SablierV2LockupDynamic
and SablierV2LockupLinear
contracts.
https://github.com/Cyfrin/2024-05-Sablier/blob/43d7e752a68bba2a1d73d3d6466c3059079ed0c6/v2-core/src/SablierV2LockupDynamic.sol#L354
https://github.com/Cyfrin/2024-05-Sablier/blob/43d7e752a68bba2a1d73d3d6466c3059079ed0c6/v2-core/src/SablierV2LockupLinear.sol#L273C1-L274C60
SablierV2LockupDynamic
and SablierV2LockupLinear
may mint a Sablier V2 Lockup NFT to a contract that cannot handle NFTs.
Manual Review
Use _safeMint()
instead of _mint()
https://github.com/Cyfrin/2024-05-Sablier/issues/1
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.