Sablier

Sablier
DeFiFoundry
53,440 USDC
View results
Submission Details
Severity: low
Valid

SablierV2Lockup is not EIP4906 compliant.

Summary

According to EIP4906-specification, the smart contracts that are implementing it must have a supportsInferface(bytes4) function that returns true when called with 0x49064906. But, there in no implementation of supportsInterface(bytes4) function in the SablierV2Lockup contract.

Vulnerability Details

The contract inherits from ERC4906 and ERC721.

abstract contract SablierV2Lockup is
NoDelegateCall, // 0 inherited components
Adminable, // 1 inherited components
IERC4906, // 2 inherited components
ISablierV2Lockup, // 4 inherited components
ERC721 // 6 inherited components
{

But, there is no overridden supportsInterface() function implemented inside the SablierV2Lockup contract.

Impact

When integrating with external protocols like NFT marketplaces, they check for supportsInterface() function with 0x49064906 interface id to make sure that our NFTs supports metadata and batch metadata update.
But in our case, supportsInterface() function is not implemented. Thus, the NFT markets will not update the images and related attributes of the NFTs.
Unlike other NFTs, stream NFTs are different. They contain various attributes like progress, status, amount and duration of the stream. Not updating these attributes for transferable NFTs can lead to recipients honey pot other users while selling/transferring the NFTs and In our case these attributes are never updated.

Tools Used

Manual Analysis

Recommendations

Implement the supportsInterface() function in the SablierV2Lockup contract like the reference implementation suggested by EIP4906 specification.

Updates

Lead Judging Commences

inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Info/Gas/Invalid as per Docs

https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity

0xnevi Judge
about 1 year ago
0xsandy Submitter
about 1 year ago
inallhonesty Lead Judge
about 1 year ago
0xsandy Submitter
about 1 year ago
0xsandy Submitter
about 1 year ago
inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Validated
Assigned finding tags:

supportsInterface() not properly implemented to support ERC4906

Support

FAQs

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