DittoETH

Ditto
DeFiFoundryOracle
55,000 USDC
View results
Submission Details
Severity: low
Invalid

Missing checks for `address(0x0)` when updating `address` state variables

Summary

Lack of zero-address validation on address parameters may lead to transaction reverts, wastes gas, may require resubmission of transactions, and may force contract redeployments in certain cases within the protocol.

Vulnerability Details

There are 11 instances of this issue.

View 11 Instances
File: contracts/bridges/BridgeReth.sol
/// @audit constructor()
22: diamond = diamondAddr;
File Link Instance Count Instance Link
BridgeReth.sol 1 22

File: contracts/bridges/BridgeSteth.sol
/// @audit constructor()
24: diamond = diamondAddr;
File Link Instance Count Instance Link
BridgeSteth.sol 1 24

File: contracts/facets/BridgeRouterFacet.sol
/// @audit constructor()
28: rethBridge = _rethBridge;
/// @audit constructor()
29: stethBridge = _stethBridge;
File Link Instance Count Instance Links
BridgeRouterFacet.sol 2 28,29

File: contracts/facets/ExitShortFacet.sol
/// @audit constructor()
30: cusd = _cusd;
File Link Instance Count Instance Link
ExitShortFacet.sol 1 30

File: contracts/facets/MarginCallPrimaryFacet.sol
/// @audit constructor()
30: cusd = _cusd;
File Link Instance Count Instance Link
MarginCallPrimaryFacet.sol 1 30

File: contracts/facets/ShortRecordFacet.sol
/// @audit constructor()
26: cusd = _cusd;
File Link Instance Count Instance Link
ShortRecordFacet.sol 1 26

File: contracts/facets/VaultFacet.sol
/// @audit constructor()
27: carbonZeth = _zeth;
File Link Instance Count Instance Link
VaultFacet.sol 1 27

File: contracts/facets/YieldFacet.sol
/// @audit constructor()
31: DITTO = IAsset(_ditto);
File Link Instance Count Instance Link
YieldFacet.sol 1 31

File: contracts/tokens/Asset.sol
/// @audit constructor()
14: diamond = diamondAddr;
File Link Instance Count Instance Link
Asset.sol 1 14

File: contracts/tokens/Ditto.sol
/// @audit constructor()
16: diamond = diamondAddr;
File Link Instance Count Instance Link
Ditto.sol 1 16

Impact

Potential for transaction reverts, wasting of gas, requiring resubmission of transactions, and may force contract redeployments in certain cases.

Tools Used

baudit: a custom static code analysis tool; manual review

Recommendations

Consider adding explicit zero-address validation prior to assignment of a value to an address state variable.

Updates

Lead Judging Commences

0xnevi Lead Judge
almost 2 years ago
0xnevi Lead Judge almost 2 years ago
Submission Judgement Published
Invalidated
Reason: Zero address checks

Support

FAQs

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