Breaking the Solidity Compiler with a Fuzzer
Summary: Trail of Bits fuzzed solc, the standard Solidity smart contract compiler, and found almost 20 new bugs, most of them previously unreported and now mostly fixed. The campaign used a modified AFL with source-code-like mutations, a corpus drawn from test/libsolidity, and over a billion compilations on two cores to reach bugs deep in the derivation tree.
Key Takeaway: One of the bugs that earned a bounty and made the 0.6.8 release's important fixes could produce incorrect code for some string literals, so a compiler defect can silently change what a contract does rather than simply crash.
Read the original at Trail of Bits Blog ↗