40,000 USDC
View results
Submission Details
Severity: medium

Address collision can still occur, although chances are low,

Summary

Under a really dedicated attack, the keccak-256 function can broken, and address collision can arise.

Vulnerability Details

The protocol uses a keccak-256 hash function to generate random addresses and prevent cases of address collisions. Although very secure, research has shown that collision can be achieved, through special collision finding techniques. This serverly compromises the randomness of salt, which in turn comprises the contract.

Collision attacks on keccak-256
https://www.researchgate.net/publication/257334270_Improved_Practical_Attacks_on_Round-Reduced_Keccak
https://www.researchgate.net/publication/220336322_New_Attacks_on_Keccak-224_and_Keccak-256

These research papers were published about 10 years ago, and they show collisions and near collisions being achieved. It's not a stretch to say that the technology is much better now and consequently the risk to the hash function higher.

Marking medium, however, because the chances of this occuring is still quite low, it would require a really dedicated attack from someone with extensive knowledge of cryptography.

Impact

The randomness of salt will become compromised, this can lead to a transfer of funds to the wrong contracts. This in turn leads to loss of funds and negatively affects record keeping.

Tools Used

Manual code analysis, research papers.

Recommendations

An extra address verification process should be added to check if a contract already exists. That way, in case of a collision, a new address can be regenerated or the transaction reverted.

Support

FAQs

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