Sablier

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

Broker fee is overpaid when stream is canceled

Vulnerability Details

From documentation link The broker fee is a percentage of the streamed amount. When create new stream, all broker fee are transfered for broker in all type of stream:

function _create(LockupLinear.CreateWithTimestamps memory params) internal returns (uint256 streamId) {
  .   .   .   .   .   .   .   .   .
    // Interaction: pay the broker fee, if not zero.
    if (createAmounts.brokerFee > 0) {
        params.asset.safeTransferFrom({ from: msg.sender, to: params.broker.account, value: createAmounts.brokerFee });
    }
  .   .   .   .   .   .   .   .   .
}

But when stream is canceled, none of the fee is transfered back for stream creator, which lead to broker fee is overpaid.

Impact

Broker fee is overpaid

Tools Used

Manual review

Recommendations

Instead of directly transfer fee for broker, consider mint another stream for broker.

Updates

Lead Judging Commences

inallhonesty Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

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