Sablier

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

Vulnerabilities Identified in NoDelegateCall.sol Contract

Summary
The NoDelegateCall.sol contract was analyzed, and several vulnerabilities were identified. These vulnerabilities could potentially allow bypassing the delegate call prevention mechanism and impact the security of the contract.

Vulnerability Details
Immutable Address Initialization:

The ORIGINAL address is set in the constructor and marked as immutable. However, any mistake during deployment or in contract upgrades could lead to bypassing the delegate call prevention.
Delegate Call Check Bypass:

The _preventDelegateCall function checks if address(this) matches ORIGINAL. There might be scenarios where this check could be manipulated or bypassed in complex contract systems or through upgrade mechanisms.
Error Handling Dependency:

The contract relies on the Errors library for handling the delegate call error. If the Errors library is modified or not implemented correctly, it could introduce vulnerabilities or fail to revert the transaction as expected.
Impact
The identified vulnerabilities could allow for delegate calls to be executed, potentially leading to unintended and unauthorized code execution. This could compromise the integrity and security of the contract and its interactions.

Tools Used
Manual code review
Solidity compiler
Security analysis tools (e.g., MythX, Slither)
Recommendations
Ensure Correct Initialization:

Verify that the ORIGINAL address is correctly set during deployment and remains consistent throughout the contract's lifecycle.
Mitigate Upgrade and Proxy Risks:

Implement additional checks or safeguards to ensure the ORIGINAL address remains immutable and cannot be modified through upgrades or proxy patterns.
Verify Error Handling:

Ensure the Errors contract is correctly implemented and that Errors.DelegateCall properly reverts transactions with an appropriate message.

Updates

Lead Judging Commences

inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Too generic

Support

FAQs

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