Mythril Classic is an open-source security analysis tool for Ethereum smart contracts. It uses concolic analysis, taint analysis and control flow checking to detect a variety of security vulnerabilities.
Mythril Classic is an open-source security analysis tool for Ethereum smart contracts. It uses symbolic analysis, taint analysis and control flow checking to detect a variety of security vulnerabilities.
If you a smart contract developer who wants convenience and comprehensive results, you should be using [MythX](https://mythx.io), our next-gen smart contract security API that [integrates with Truffle Framework](https://github.com/ConsenSys/truffle-security) and other development environments.
If you a smart contract developer who wants convenience and comprehensive results, you should be using [MythX](https://mythx.io), our next-gen smart contract security API that [integrates with Truffle Framework](https://github.com/ConsenSys/truffle-security) and other development environments.
"head": "The contract executes an external message call.",
"head": "The contract executes an external message call.",
"tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."
"tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "661:1:0"
"sourceMap": "661:1:0"
@ -21,7 +23,9 @@
"head": "The contract executes an external message call.",
"head": "The contract executes an external message call.",
"tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."
"tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "779:1:0"
"sourceMap": "779:1:0"
@ -36,7 +40,9 @@
"head": "The contract executes an external message call.",
"head": "The contract executes an external message call.",
"tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."
"tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "858:1:0"
"sourceMap": "858:1:0"
@ -51,7 +57,9 @@
"head": "A call to a user-supplied address is executed.",
"head": "A call to a user-supplied address is executed.",
"tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state."
"tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "912:1:0"
"sourceMap": "912:1:0"
@ -66,7 +74,9 @@
"head": "The return value of a message call is not checked.",
"head": "The return value of a message call is not checked.",
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "661:1:0"
"sourceMap": "661:1:0"
@ -81,7 +91,9 @@
"head": "The return value of a message call is not checked.",
"head": "The return value of a message call is not checked.",
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "779:1:0"
"sourceMap": "779:1:0"
@ -96,7 +108,9 @@
"head": "The return value of a message call is not checked.",
"head": "The return value of a message call is not checked.",
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "858:1:0"
"sourceMap": "858:1:0"
@ -111,7 +125,9 @@
"head": "The return value of a message call is not checked.",
"head": "The return value of a message call is not checked.",
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
"tail": "The callcode method executes code of another contract in the context of the caller account. Due to a bug in the implementation it does not persist sender and value over the call. It was therefore deprecated and may be removed in the future. Use the delegatecall method instead."
"tail": "The callcode method executes code of another contract in the context of the caller account. Due to a bug in the implementation it does not persist sender and value over the call. It was therefore deprecated and may be removed in the future. Use the delegatecall method instead."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "618:1:0"
"sourceMap": "618:1:0"
@ -21,7 +23,9 @@
"head": "A call to a user-supplied address is executed.",
"head": "A call to a user-supplied address is executed.",
"tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state."
"tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "1038:1:0"
"sourceMap": "1038:1:0"
@ -36,7 +40,9 @@
"head": "The return value of a message call is not checked.",
"head": "The return value of a message call is not checked.",
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "618:1:0"
"sourceMap": "618:1:0"
@ -51,7 +57,9 @@
"head": "The return value of a message call is not checked.",
"head": "The return value of a message call is not checked.",
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
},
},
"extra": {},
"extra": {
},
"locations": [
"locations": [
{
{
"sourceMap": "849:1:0"
"sourceMap": "849:1:0"
@ -66,7 +74,9 @@
"head": "The return value of a message call is not checked.",
"head": "The return value of a message call is not checked.",
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."
"tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."