Tadle

Tadle
DeFi
30,000 USDC
View results
Submission Details
Severity: medium
Invalid

The address generation mechanism is vulnerable to address colisions.

Relevant links

https://github.com/Cyfrin/2024-08-tadle/blob/04fd8634701697184a3f3a5558b41c109866e5f8/src/libraries/GenerateAddress.sol#L12

Summary

The address generation mechanism in GenerateAddress is vulnerable to address colision

Vulnerability Details

To determine an address, we execute the following line address(uint160(uint256(keccak256(abi.encode(_id, "maker")))));. I'd like to bring our attention to the following piece of code used in here.

`address(uint160(uint256(...)))`

We can notice that, we're casting a uint256 to uint160. This can lead to silent overflows which can result in 2 ids having

function generateMakerAddress(uint256 _id) internal pure returns (address) {
return address(uint160(uint256(keccak256(abi.encode(_id, "maker")))));
}

Impact

Tools Used

Recommendations

Updates

Lead Judging Commences

0xnevi Lead Judge
9 months ago
0xnevi Lead Judge 9 months ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement

Support

FAQs

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