I am testing Mythril on the vulnerability of unchecked return values of low-level calls (SWC-104) and several Solidity versions.
In the following contract Mythril detects the vulnerability with Solidity version 0.7.6. In the exact same contract but version 0.8.29 it doesn't. I've used Mythril version 0.24.7 in sourcecode mode and bytecode mode.
I've encountered this behaviour also with the constructs staticcall and delegatecall in similarly designed contracts.
What is the reason or motivation behind this?
Thank you for the help!
pragma solidity 0.7.6;
contract Contract_100 {
constructor() public {
}
function test(address callAddress) public {
callAddress.call(abi.encodeWithSignature("foo()"));
}
}
I am testing Mythril on the vulnerability of unchecked return values of low-level calls (SWC-104) and several Solidity versions.
In the following contract Mythril detects the vulnerability with Solidity version 0.7.6. In the exact same contract but version 0.8.29 it doesn't. I've used Mythril version 0.24.7 in sourcecode mode and bytecode mode.
I've encountered this behaviour also with the constructs staticcall and delegatecall in similarly designed contracts.
What is the reason or motivation behind this?
Thank you for the help!