20,000 USDC
View results
Submission Details
Severity: medium
Valid

Pragma non-specification can lead to non-functional / corrupted contract when deployed on Arbitrum

Summary

Pragma has been set to ^0.8.19 allowing the contracts to be compiled with a compiler equal or greater than 0.8.19. The problem with compiling is that Arbitrum is NOT compatible with 0.8.20 and later.

Vulnerability Details

Contracts compiled with non specified versions will result in a non-functional or potentially damaged version that won't behave as expected. The default behaviour of compiler would be to use the newest version which would mean by default it will be compiled with the 0.8.20 version which will produce broken code.

Impact

Corrupted or non-functional contracts when deployed on Arbitrum.

Tools Used

Manual Review

Recommendations

Lock or Constrain pragma as follows: pragma solidity 0.8.19 or pragma solidity >=0.8.0 <=0.8.19

Support

FAQs

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