MorpheusAI

MorpheusAI
Foundry
22,500 USDC
View results
Submission Details
Severity: low
Invalid

Unsupported Opcode PUSH0 in solidity 0.8.20 for deployment on Arbitrum Chain

Summary

As indicated in the project documentation (https://www.codehawks.com/contests/clrzgrole0007xtsq0gfdw8if) the project is set to be deployed on Ethereum/Arbitrum chain but the solidity version 0.8.20 has opcode PUSH0 which is not supported on Arbitrum, thus it cannot be deployed.

Vulnerability Details

The solc version ^0.8.20 used in the smart contract exhibits the PUSH0 opcode and is currently not supported across all EVM chains. The contracts are required to be deployed on Arbitrum chain, but it doesn't support the PUSH0 opcode (ref. Arbitrum documentation https://docs.arbitrum.io/for-devs/concepts/differences-between-arbitrum-ethereum/solidity-support). The contracts compiled with solidity versions above 0.8.19 will not be able to deploy, or even if they are able to deploy then may not function properly and may lead to other consequences.

Impact

The impact of using the solidity version ^0.8.20 is that it comes with the PUSH0 opcode and this opcode is not supported on Arbitrum causing the smart contract to malfunction and the contract may not execute correctly.

Tools Used

Manual review

Recommendations

PUSH0 opcode comes with 0.8.20 and higher versions, therefore switching to 0.8.19 will make the smart contract fully compatible to be deployed on Arbitrum chain.

Updates

Lead Judging Commences

inallhonesty Lead Judge
over 1 year ago
inallhonesty Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Known issue

Support

FAQs

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