Skip to content

EVM runtime

Bug Bounty engagements can import pinned Solidity repositories and prepare one engagement-owned Anvil chain with evm_lab. The runtime uses the pinned Foundry toolchain in cyberful-os; Forge, Cast, Anvil, Chisel, and the shell remain directly available.

The managed lab publishes Anvil only on a random host loopback port. It returns that host/browser endpoint and a host.docker.internal endpoint for commands running inside cyberful-os. Cyberful does not place an RPC proxy in front of either endpoint, filter JSON-RPC methods, or rewrite direct RPC traffic.

Source collection

source_import is available to Bug Bounty Brief and Recon. It accepts a stable repository alias and imports at most eight roots per engagement. The default recursive mode resolves credential-free absolute or relative HTTPS submodule URLs, validates every host, checks out each exact Gitlink commit, and records a manifest v3 fingerprint for the root and every nested submodule. Hooks, redirects, LFS smudges, dependency execution, credentials, and non-HTTPS transports remain disabled. Later phases can select repositories with source_catalog and the optional repository field on source tools; they cannot add or replace imports.

Existing manifest v2 imports remain readable. Code Audit keeps its single-root collection and separate Code Graph/finding lifecycle; EVM support does not join the two workflow ledgers.

prepare supports a fresh chain or a fork at an optional fixed block, mutable copies of selected authenticated imports, a configurable chain ID, and synthetic accounts. Private keys are stored as redacted session variables; the tool returns their variable names and public addresses. snapshot, revert, status, and stop operate the single managed chain. Additional model-started Anvil processes are independent of this convenience lifecycle.

The Anvil container survives normal phase changes from Recon through Verify. It and the synthetic account variables are removed on explicit stop or engagement cleanup. Foundry compiler state lives under the engagement's .cyberful-evm/cache directory, is reusable across phases, and is removed with the runtime rather than written to the host profile.

Candidate finding evidence is registered explicitly with evm_evidence. The index at raw/evm/evidence.json records provenance and the SHA-256 of an existing artifact; ordinary command output and Cast calls are not archived automatically.

Tool availability

Tool Bug Bounty phases
source_import Brief, Recon
source_catalog, inventory, read, search, snapshot All phases
evm_lab Recon, Exploit, Hacker, Verify
evm_evidence Recon, Exploit, Hacker, Verify, Report

The builtin operate-evm-security-toolchain skill contains the concise Foundry workflow and command reference. Recon, Exploit, and Hacker persona text is not modified to force use of the EVM path.