Skip to content

sodejm/exploit-validation-workbench

v0.1.0PolyForm-Noncommercial-1.0.0

Validate offline versioned vulnerability reproduction plans and local evidence digests.

COPS Exploit Validation Workbench

This experimental package provides offline preflight only for versioned vulnerability reproduction in a disposable laboratory. It verifies the SHA-256 of local advisory and case files, requires exact affected and fixed version membership, three separate case declarations, a common objective, and declared lab control references. It never loads or executes those files as code, downloads sources, contacts a target, or grants execution authority.

The file gate currently requires a POSIX host with O_NOFOLLOW, O_DIRECTORY, and O_NONBLOCK support; other hosts receive a refusal.

Usage

Use the playbook for the input contract and the verification guide for the synthetic exercise. From the repository root, python3 -m cops demo exploit-validation-workbench runs the inert fixture; python3 -m cops check exploit-validation-workbench runs its package gate. For a private plan, run PYTHONPATH=plugins/vulnerability-management/exploit-validation-workbench python3 -m reproduction.cli --input /private/path/plan.json --output /private/path/new-report.json. The private output path is required and the file must not exist beforehand; the CLI does not print a successful report to stdout.

Data flow and contract

The operator provides a plan and local files; the preflight reads their bytes, checks exact metadata and hashes, and writes a private report. Nothing in this flow executes the case artifacts or verifies that an external lab exists.

ArtifactPurposeProducerConsumerValidation
cops.exploit-reproduction-plan/v1 JSONDeclares the reference, versions, disposable lab controls, and three casesOperatorOffline preflightExact schema, required controls, version membership, no command fields
Advisory and case filesLocally pinned input bytesOperator acquisition processOffline preflightRegular local files, no symlinked artifact components, parent traversal, or control-character paths; SHA-256 matches plan
cops.exploit-reproduction-preflight/v1 JSONRecords metadata outcome and next required independent actionOffline preflightOperator and later lab workflowPrivate new file; always execution_authorized: false

Threat boundary: the JSON is untrusted and its URLs, receipts, and lab controls are operator claims. A matching local digest proves only byte identity with the claim, not the publisher, affected version, safe isolation, or permission. The report therefore always returns execution_authorized: false. The COPS laboratory harness must independently verify those controls and collect positive, negative, remediated, and cleanup observations before any operational claim. Keep real inputs and reports in private storage; the CLI output file is created mode 0600 on POSIX and never overwritten.