category: fleet-doc · status: 9 family dirs; protocol.md shared by vulhub-farm + webapp-asserts · updated: 2026-11-02

🚢 Fleet — environment families index

fleet/ holds runnable environment code: each family is a self-contained orchestrator that brings up vulnerable targets, runs an agent under a defined protocol, scores a mechanical win condition, and snapshots a verified trajectory for the factory loop (../index.md → stream D).

Shared agent protocol: fleet/protocol.md (cyber-factory/agent@1): one task JSON line on stdin, newline-delimited progress/result JSON on stdout, secret/answer/evidence in the final result. Currently spoken by vulhub-farm/runner.py and webapp-asserts/runner.py; adopting it in the other families is the unification TODO below.

Families

FamilyDirEnvironmentsVerifier kindsProtocolStatus
vulhub-farmfleet/vulhub-farm/30 curated vulhub envs (SQLi, RCE, SSRF, file-upload/fileread, deserialization, auth bypass) out of 334 enumeratedfile_read_canary · command_exec_canary · http_marker · http_callback · db_canary✅ protocol.md🟡 scaffolded — --list works anywhere; needs sync.py + docker host
webapp-assertsfleet/webapp-asserts/DVWA (8 tasks) + OWASP Juice Shop (7 tasks), per-run randomized statedb_row · js_challenges · agent_secret · http_marker✅ protocol.md🟡 scaffolded — smoke structural pass; docker host pending
evm-assertsfleet/evm-asserts/Ethernaut/Damn-Vulnerable-DeFi challengeson-chain asserts—scaffolded (see its README)
agentdojo-gymfleet/agentdojo-gym/AgentDojo wrapper + randomized injection suites (pip agentdojo==0.1.35)utility + ASR (security verifier wiring)—scaffolded — live smoke: utility 100%, ASR 100%
k8s-goatfleet/k8s-goat/5 container-escape scenarios on local kind (dashboard, privileged pod, hostPath, RBAC, runtime socket)env checks + per-run canary post-conditions—scaffolded — verifiers selftested; live smoke needs kind+docker
pwn-college-dojofleet/pwn-college-dojo/pwn.college dojo scaffold (pwn/web/crypto/rev/forensics)dojo verifier—scaffolded
procedural-generatorfleet/procedural-generator/randomized env generatortask verifier—scaffolded
purple-loopfleet/purple-loop/red-trains-blue Sigma hunt loopdetection asserts—scaffolded (smoke runs present)
held-out-evalfleet/held-out-eval/private rotation manifest + scorerheld-out scoring—scaffolded (see ROTATION.md)

Wiki pages: fleet/vulhub-farm.md, fleet/webapp-asserts.md, fleet/procedural-generator.md, fleet/pwn-college-dojo.md, fleet/evm-asserts.md, fleet/agentdojo-gym.md, fleet/k8s-goat.md.

Common properties enforced by the protocol.md-speaking runners:

(../competitors/bugcrowd-rl-environments.md): per-run randomized challenge–response secrets, nonces, DB rows, CTF keys and challenge subsets; marker-path baseline prechecks abort env-dirty runs.

host ports, DB never published, always down -v teardown.

with materialized goal, task message, agent stdout/stderr, verifier verdict, timings and compose logs.

Quickstart


cd fleet/vulhub-farm && python3 -I runner.py --list && python3 -I runner.py --smoke fastjson/1.2.47-rce
cd fleet/webapp-asserts && python3 -I runner.py --list && python3 -I runner.py --smoke all

Both --smoke modes degrade gracefully without docker (structure-only pass).

Queue / next

--version` fails) and re-run both smokes with the full lifecycle.

protocol.md so one agent binary runs the whole fleet.

(fleet/held-out-eval/ROTATION.md).