SWC-104/未检查的调用返回值
未检查消息调用的返回值。即使被调用的合约引发异常,执行也将继续。如果调用意外失败, 或者攻击者强制调用失败,则可能导致后续程序逻辑中的意外行为。
CWE漏洞分类
整改方案
如果选择使用底层调用方法,请确保通过检查返回值来处理调用失败的可能性。
参考文献
合约示例
unchecked_return_value.sol
pragma solidity 0.4.25;
contract ReturnValue {
function callchecked(address callee) public {
require(callee.call());
}
function callnotchecked(address callee) public {
callee.call();
}
}
unchecked_return_value.yaml
description: Unchecked Return Value
issues:
- id: SWC-104
count: 1
locations:
- bytecode_offsets:
'0x7ef422fc103074d1506988ef06e35af83fb2314146d00653790de08f7d6d9c8d': [312]
line_numbers:
unchecked_return_value.sol: [10]