GENVM-RECON V2 · BRADBURY

GENVM-RECON

Static Analyzer + Calldata Fuzzer · GenLayer Intelligent Contracts · v2.0

10
Static Checks
10
Fuzz Mutations
11
Tests Passing
2
CVEs Found
MIN SEVERITY:
CLEAN
CheckSeverityDescription
runner_idHIGHMissing or non-pinned runner ID
storage_annotationsCRITICALFields set in __init__ without class-level annotation — state not persisted
nondet_patternCRITICALexec_prompt called directly in @gl.public.write
self_in_nondetCRITICALself.* accessed inside leader_fn / validator_fn
import_styleMEDIUMfrom genlayer import * is deprecated — use import genlayer as gl
constructor_arg_typesHIGHUnsupported types in storage (int, list, dict, float)
nondet_result_unusedHIGHrun_nondet_unsafe() result not assigned to storage
missing_return_typeMEDIUMMissing return type on public methods — breaks schema
dead_write_methodLOW@gl.public.write never modifies storage — use @gl.public.view
gl_contract_baseHIGHBare Contract base class — use gl.contract.Contract
Generates malformed calldata payloads based on two confirmed GenVM vulnerabilities:
CVE-1 Vec::with_capacity OOM via attacker-controlled array length (250pt accepted)
CVE-2 leader_nondet_results empty-element panic (submitted Jun 12 2026)