Flow

Sablier
FoundryDeFi
20,000 USDC
View results
Submission Details
Severity: medium
Invalid

`admin` zero address check missing

Summary

Missing zero address check in SablierFlowBase::constructor() and Admirable::transferAdmin().

Vulnerability Details

Missing zero address check when setting or transferring the admin address. This can lead to setting zero address to the admin.

Impact

If the admin address is set to address(0), it may disable key functionality in the contract. This is particularly serious if the admin manages important operations like fund transfers, contract upgrades, or parameter adjustments.

Tools Used

Manual review

Recommendations

Add zero address check:

constructor(address initialAdmin, IFlowNFTDescriptor initialNFTDescriptor) {
+ require(initialAdmin != address(0), "Invalid newAdmin address.");
nextStreamId = 1;
admin = initialAdmin;
nftDescriptor = initialNFTDescriptor;
emit TransferAdmin({ oldAdmin: address(0), newAdmin: initialAdmin });
}
function transferAdmin(address newAdmin) public virtual override onlyAdmin {
+ require(newAdmin != address(0), "Invalid newAdmin address.");
// Effect: update the admin.
admin = newAdmin;
// Log the transfer of the admin.
emit IAdminable.TransferAdmin({ oldAdmin: msg.sender, newAdmin: newAdmin });
}
Updates

Lead Judging Commences

inallhonesty Lead Judge 12 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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