// solidity audit workbench — local, offline, yours

PROJECTS

none yet

NEW PROJECT

TOOL

Backtest / does it work?

ENGINES

slither: on
aderyn: off
mythril: off
semgrep: off

does it work?

Each case below reproduces the root-cause pattern of a publicly documented historical incident (original, simplified code — not a copy of any project's real source). A PASS means the scanner caught the expected issue at the expected severity or worse.

8/8 expected findings caught (100.0%)
PASS The DAO hack (June 2016) — reentrancy via external call before state update
file: 01_reentrancy_dao_pattern.sol · 4 total findings
✓ caught: Reentrancy: external call before state update [High]
all findings
[High] Pre-0.8 Solidity without SafeMath — overflow/underflow risk
[High] Reentrancy: external call before state update
[Medium] Sensitive function 'withdraw' has no visible access control
[Low] Floating pragma
PASS Parity multi-sig library freeze (Nov 2017) — exposed initializer + delegatecall
file: 02_proxy_takeover_parity_library_pattern.sol · 5 total findings
✓ caught: ATTACK CHAIN: proxy takeover via exposed initializer + delegatecall [Critical]
✓ caught: ATTACK CHAIN: proxy takeover via exposed initializer + delegatecall [Critical]
all findings
[Critical] ATTACK CHAIN: proxy takeover via exposed initializer + delegatecall
[High] initialize() without an initializer guard
[High] delegatecall to a potentially untrusted address
[Low] Floating pragma
[Low] selfdestruct present (verify access control)
PASS Parity multi-sig first hack (Jul 2017) — re-initializable owner, missing access control
file: 03_access_control_reinit_pattern.sol · 2 total findings
✓ caught: Sensitive function 'initializeWallet' has no visible access control [High]
all findings
[High] Sensitive function 'initializeWallet' has no visible access control
[Low] Floating pragma
PASS BeautyChain (BEC) batchOverflow (Apr 2018) — unchecked arithmetic overflow
file: 04_integer_overflow_batch_pattern.sol · 2 total findings
✓ caught: Pre-0.8 Solidity without SafeMath — overflow/underflow risk [High]
all findings
[High] Pre-0.8 Solidity without SafeMath — overflow/underflow risk
[Low] Floating pragma
PASS On-chain lottery RNG hacks (e.g. SmartBillions, 2017-18) — predictable block-based randomness
file: 05_weak_randomness_lottery_pattern.sol · 4 total findings
✓ caught: On-chain randomness from block variables [High]
all findings
[High] On-chain randomness from block variables
[Medium] block.timestamp near randomness-sensitive logic
[Medium] abi.encodePacked with multiple dynamic args — hash collision risk
[Low] Floating pragma
PASS tx.origin phishing pattern (SWC-115, textbook/real-world class)
file: 06_tx_origin_phishing_pattern.sol · 2 total findings
✓ caught: Authorization via tx.origin [High]
all findings
[High] Authorization via tx.origin
[Low] Floating pragma
PASS King of the Ether Throne (2016) — DoS via unchecked failed push-payment
file: 07_unchecked_send_dos_pattern.sol · 2 total findings
✓ caught: Unchecked .send() — possible DoS via failed transfer [Medium]
all findings
[Medium] Unchecked .send() — possible DoS via failed transfer
[Low] Floating pragma
A miss means a real, famous, well-understood bug pattern slipped past the tool — run python -m vulnscan.cli backtest any time after changing a check to re-verify nothing regressed.