Download PDF Download JSON
VERIFICATION · SIGNED EVIDENCE

FalseGreen Verification Report

INSUFFICIENT EVIDENCE

The required evidence could not be established for the exact source tree verified by FalseGreen.

This does not prove universal correctness. Assurance is limited to the explicit formal properties, assumptions, models, summaries, and scope recorded in this report.

This is record 5 of this Job, re-issued from the evidence its run stored. The verdict was decided by the Job itself, under the rules that run shipped with (the policy digest and witness versions in the Security section); re-issuing re-presents the evidence and NEVER re-decides it. Record 1 stays immutable.

The work
Job520d2155-f6c4-43c6-953c-1829b6dd5cc3
Languagerust
Toolchainrustc 1.99.0 (rustc) (1.99.0)
Verifier environmentrust - rustc 1.99.0 (rustc) (1.99.0)
The frozen boundary
Source treee8006c3f8784d4f439eff39ce6354cbd256c987bb17243c3a45c57f92726d25d
Contract SHA-256e5994e7c7513719eb7bbc8e71819af12bee6973055b2cb3c5f458f5e4b1f12b7
Criteria SHA-256d34458a3179d885efdb609b2971179f2f58aabd17860731a25031594a5d329cb
Criteria3 / 3 PASSED
What FalseGreen did
Attempts7
Duration27.1s
Report schemav13
Report record5 (re-issued 2026-10-26)
Signed2026-10-26 05:58:17 UTC

Contract (frozen)

(contract embedding unavailable — schema v2 report)

Plan (frozen)

ObjectiveRe-smoke FalseGreen 0.10.0 end-to-end on the ledger demo: the falsegreen.toml invariant set captures every implemented behavior claim (DESIGN.md sections 1-10 + README exit-code contract + threat-model scope), the baseline run is accepted with all five security witnesses carrying real evidence, and three dedicated break workspaces prove the SCA (#10), SAST (#14), and secret (#12) classes now actually gate the verdict; the HTML/PDF report parity (#13) and the invariant carry (#7) are re-observed on the signed artifacts.
Plan digestfc5315fcb0033384496bdcf05184fb8aaf2768ad689e9f045a968c93cd8aa2bf
Work items7

Work items, in dependency order:

Work itemOutcomeDepends onOmission risk
contract-invariantsfalsegreen.toml carries ten [[invariant]] sections mapping 1:1 to the implemented behavior: canonical form, validation, hash chain, append-only store, Merkle/Ed25519 seals, compaction, policy evaluation, exit-code precedence, export/import round-trips, and the threat-model scope--
behavior-teststhe workspace test suite (run by the frozen contract criteria) pins each behavior the invariants claim--
green-baselineone accepted Job over the clean tree with real (never-empty) evidence from all five witnessescontract-invariants, behavior-tests-
sca-breaka pinned CRITICAL advisory (smallvec 1.6.0) yields a signed critical finding and a failed verdictgreen-baseline-
sast-breaka payload matching a SARIF rule whose defaultConfiguration.level is error yields a high finding and a failed verdictgreen-baseline-
secret-breaka planted below-D0-threshold secret token in-tree is found by the file-scanning gitleaks witness and fails the secret classgreen-baseline-
inventory-evidencesupply_chain and license classes carry real SBOM facts (component rows + license facts) and are recorded severity-less — they inform, never severity-gategreen-baseline-

Acceptance conditions, and the evidence that decides each:

ScopeConditionEvidence
contract-invariantsevery DESIGN.md section and the README exit-code contract is claimed by exactly one invariant; the signed report's contract section echoes all ten verbatim (fixes #7)inspection
contract-invariantsthe threat-model invariant states both halves: what verify proves and what it explicitly does not proveinspection
behavior-testscanonical serialization is deterministic; key-order edits do not change the canonical form; hashing/signing run over canonical bytesbehavioral-test
behavior-testsunknown fields, empty required fields, non-object context, and out-of-range timestamps are rejected as corrupt-class, never normalizedbehavioral-test
behavior-testsrecord hash commits to canonical event + prev_hash; the link rule and its named failures (bad_record_hash, broken_link, sequence_gap) holdbehavioral-test
behavior-testsappend continues the verified head and never rewrites shard content; parse errors report shard and linebehavioral-test
behavior-testsMerkle construction (odd-leaf duplication), seal message fields, signature coverage, and count-mismatch detection holdbehavioral-test
behavior-testscompaction keeps the genesis prev_hash and root link unchanged, embeds the source seal verbatim, and breaks on rewritebehavioral-test
behavior-testsdeny and require_outcome rules flag exactly the matching events at verify time, with rule_id in the reportbehavioral-test
behavior-testsexit codes 0/1/2/3/4/5/255 and the corrupt>gap>signature>tampered>policy precedence holdbehavioral-test
behavior-testsexport/import reproduces identical record hashes into a fresh ledgerbehavioral-test
green-baselinethe clean workspace passes every required criterion and the verdict is acceptedbuild
green-baselinethe signed report shows non-empty raw_output_digest (not e3b0c442...) for gitleaks and both syft witnesses, and echoes all ten contract invariants (fixes #7 #11 #12 vacuity)artifact
sca-breakthe signed report carries a dependency_vulnerability finding at severity critical, class posture fail, verdict failed — the advisory is never silently dropped (#10 fixed)artifact
sast-breakthe signed report carries a static_analysis finding at severity high (rule-level SARIF default honored), class posture fail, verdict failed (#14 fixed)artifact
secret-breakthe signed report carries a secret-class finding (no raw secret value), class posture fail, verdict failed (#12 fixed)artifact
inventory-evidencethe signed report shows the syft SBOM projection (components as pkg:cargo purls) and license facts from the dependency manifest; both classes pass on the clean tree without severity rows (#11 fixed, DP-10.3)artifact
overallall legs observed live: baseline accepted with five real witnesses and ten echoed invariants; SCA, SAST, and secret break runs each end in a signed failed verdict with the finding present; inventory facts real; HTML and PDF VEX sections both carry the JSON-report URL (#13)artifact
overalleach Job's entitlement is consumed exactly once at its terminal verdict, with the account posture readable per Jobartifact

Evidence manifest

Attempt 1 - passed - 2026-10-21 17:51:56 UTC - wall 42.2s
source sha256: c29cc78fa67a8ad57fe6b25c3b42fd29f5d6cfb4d9fcfcf06263ce8e4686811e
env sha256: f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
Attempt 2 - passed - 2026-10-21 17:54:42 UTC - wall 29.2s
source sha256: 4db442db0b30ff15694e4c46da2b8be04d9c388e312903c3b3b69144543dccdd
env sha256: f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
Attempt 3 - passed - 2026-10-21 17:55:50 UTC - wall 29.2s
source sha256: bdfbca2b16dfbe856fb4b96879974d70b50882791902d790ae24e85e8e8640b7
env sha256: f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
Attempt 4 - passed - 2026-10-21 17:57:04 UTC - wall 34.8s
source sha256: 0f803b6e96e7060ae83e7e589cfac7c1eda124872402cc22dcd2ee43df2c0067
env sha256: f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
Attempt 5 - passed - 2026-10-21 17:59:09 UTC - wall 28.5s
source sha256: 0d0034d14e791fcb13b7db8875d18e7f884f2a4da9c393040ced7f5d2f34178e
env sha256: f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
Attempt 6 - passed - 2026-10-21 18:00:14 UTC - wall 28.0s
source sha256: 0cb7c13b10d359ba5965e6dc9285a64043fa73a95985c7facde439fecd6b1e86
env sha256: f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
Attempt 7 - passed - 2026-10-21 18:01:22 UTC - wall 29.4s
source sha256: de6b2e18c7c9cf41b4b6389af49aac4728bb34db020bfe3fa770ceb6b17f6872
env sha256: f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
Attempt 8 - passed - - wall 27.1s
source sha256: not recorded
env sha256: f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552

Security Findings

The bar these findings are judged against (the frozen policy): fail on: critical, high · unknown severity: insufficient_evidence.

FindingSubjectClassSeverityState
5046f75b49bcc91e972fe6e37dff89bd730acac66b5c0835cdfea59610c6a9a5osv/RUSTSEC-2021-0003pkg:crates.io/smallvec@1.6.0Dependency/SCAhighOPEN
538efbca6ab37d1de7206475fd690628e0d69cbb5b3b1d27719f69b6caaf43f7osv/GHSA-43w2-9j62-hq99pkg:crates.io/smallvec@1.6.0Dependency/SCAhighOPEN

The full SBOM and VEX are in the signed JSON report.

JSON report: https://falsegreen.com/report/520d2155-f6c4-43c6-953c-1829b6dd5cc3/json

Invariant Checks

no invariants (machine-discharged propositions) were frozen for this Job

Security

Policyfalsegreen-platform
Policy digest372d3c74758acb113c1bef14b20b08b326a7703dd57d943247de6541743c0fad
ResultNOT SATISFIED
Evidence classRequiredStatusReasons
Dependency/SCAyesFAILvulnerability snapshot is stale (observed 2026-10-21T17:30:12Z, freshness bound 24h); finding 5046f75b49bcc91e972fe6e37dff89bd730acac66b5c0835cdfea59610c6a9a5 severity `high` is frozen-fail (osv/RUSTSEC-2021-0003); finding 538efbca6ab37d1de7206475fd690628e0d69cbb5b3b1d27719f69b6caaf43f7 severity `high` is frozen-fail (osv/GHSA-43w2-9j62-hq99)
Static analysisyesPASS
SecretsyesPASS
Supply chainyesPASS75 components inventoried (evidence, in the signed JSON report)
License policyyesNOT ASSESSEDno licence policy frozen — the licence facts are inventory, nothing was asserted · 73 licence facts inventoried (evidence, in the signed JSON report)

How to read this table. PASS — the evidence was collected and nothing in it violated the frozen policy. FAIL — the evidence showed a violation the policy forbids; that alone fails the Job. INSUFFICIENT EVIDENCE — the evidence could not be collected, or could not be decided for a reason outside the code (a stale snapshot, an unavailable tool, output the parser could not read). It is never a pass, and it holds the Job at insufficient_evidence rather than accepting it. NOT ASSESSED — no policy is frozen for this class, so nothing was asserted about it; the facts are recorded as inventory and the class does not hold the Job. The findings table lists only what the frozen policy JUDGED — a graded severity, supply-chain drift, or a licence breaking the frozen policy. Everything else the tools recorded (components, licence facts) is inventory: not a finding, counted on the class row above, kept in the signed JSON report. A finding is OPEN unless it is resolved, not affected, or covered by a recorded exception.

Attempt security history (the full per-attempt sections are in the signed JSON report):

AttemptResultOpen findingsDemonstrated violations
#1NOT SATISFIED2vulnerability snapshot is stale (observed 2026-10-21T17:30:12Z, freshness bound 24h); finding 5046f75b49bcc91e972fe6e37dff89bd730acac66b5c0835cdfea59610c6a9a5 severity `high` is frozen-fail (osv/RUSTSEC-2021-0003); finding 538efbca6ab37d1de7206475fd690628e0d69cbb5b3b1d27719f69b6caaf43f7 severity `high` is frozen-fail (osv/GHSA-43w2-9j62-hq99)
#2NOT SATISFIED2vulnerability snapshot is stale (observed 2026-10-21T17:30:12Z, freshness bound 24h); finding 5046f75b49bcc91e972fe6e37dff89bd730acac66b5c0835cdfea59610c6a9a5 severity `high` is frozen-fail (osv/RUSTSEC-2021-0003); finding 538efbca6ab37d1de7206475fd690628e0d69cbb5b3b1d27719f69b6caaf43f7 severity `high` is frozen-fail (osv/GHSA-43w2-9j62-hq99)
#3NOT SATISFIED2vulnerability snapshot is stale (observed 2026-10-21T17:30:12Z, freshness bound 24h); finding 5046f75b49bcc91e972fe6e37dff89bd730acac66b5c0835cdfea59610c6a9a5 severity `high` is frozen-fail (osv/RUSTSEC-2021-0003); finding 538efbca6ab37d1de7206475fd690628e0d69cbb5b3b1d27719f69b6caaf43f7 severity `high` is frozen-fail (osv/GHSA-43w2-9j62-hq99)
#4NOT SATISFIED2vulnerability snapshot is stale (observed 2026-10-21T17:30:12Z, freshness bound 24h); finding 5046f75b49bcc91e972fe6e37dff89bd730acac66b5c0835cdfea59610c6a9a5 severity `high` is frozen-fail (osv/RUSTSEC-2021-0003); finding 538efbca6ab37d1de7206475fd690628e0d69cbb5b3b1d27719f69b6caaf43f7 severity `high` is frozen-fail (osv/GHSA-43w2-9j62-hq99)
#5NOT SATISFIED2vulnerability snapshot is stale (observed 2026-10-21T17:30:12Z, freshness bound 24h); finding 5046f75b49bcc91e972fe6e37dff89bd730acac66b5c0835cdfea59610c6a9a5 severity `high` is frozen-fail (osv/RUSTSEC-2021-0003); finding 538efbca6ab37d1de7206475fd690628e0d69cbb5b3b1d27719f69b6caaf43f7 severity `high` is frozen-fail (osv/GHSA-43w2-9j62-hq99)
#6NOT SATISFIED2vulnerability snapshot is stale (observed 2026-10-21T17:30:12Z, freshness bound 24h); finding 5046f75b49bcc91e972fe6e37dff89bd730acac66b5c0835cdfea59610c6a9a5 severity `high` is frozen-fail (osv/RUSTSEC-2021-0003); finding 538efbca6ab37d1de7206475fd690628e0d69cbb5b3b1d27719f69b6caaf43f7 severity `high` is frozen-fail (osv/GHSA-43w2-9j62-hq99)
#7NOT SATISFIED2vulnerability snapshot is stale (observed 2026-10-21T17:30:12Z, freshness bound 24h); finding 5046f75b49bcc91e972fe6e37dff89bd730acac66b5c0835cdfea59610c6a9a5 severity `high` is frozen-fail (osv/RUSTSEC-2021-0003); finding 538efbca6ab37d1de7206475fd690628e0d69cbb5b3b1d27719f69b6caaf43f7 severity `high` is frozen-fail (osv/GHSA-43w2-9j62-hq99)
Witnesses (tool provenance)
osv-scanner 2.7.0 (Dependency/SCA) — invocation sha256: ccd91f56f4900e7561b4ac09ffcd8f32a89fd4ee9a01d47d046ffe8a44d6b13d — f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
semgrep 1.181.0 (Static analysis) — invocation sha256: f3dfe0ed2197c2c55812c31eb6a20c881e8fc0e28e8e6fdc69e149337e14a88f — f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
gitleaks 8.30.1 (Secrets) — invocation sha256: 497dd2010d6a321cfa4645d9c366e8d2e8bc923e320c1bed1834e7c3ec0c54e5 — f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
syft 1.54.1 (Supply chain) — invocation sha256: 22eee92de7a91a923a00982dc2fa798362f2df94202d1750cdc71125a0dddb5c — f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552
dependency-manifest 1 (License policy) — invocation sha256: 41dd72d0f0c625cedddffd7035ef794b142f250ac3553faa884b254c6bb66b42 — f94232bb359ccba42a8dbf82c6ce4ee702015af403e42ac2920c636e91ab6552

Tools & provers used

ToolVersionWhat it did in this run
osv-scanner2.7.0Dependency/SCA evidence witness
semgrep1.181.0Static analysis evidence witness
gitleaks8.30.1Secrets evidence witness
syft1.54.1Supply chain evidence witness
dependency-manifest1License policy evidence witness

Exports

Full content is embedded in the signed JSON report (report schema v13).
spdx-3.0 sha256:bbb47aae1a3bc88a815c3d1c5b8e0b84de6e8dc1b969bcc3bf99163a3166e8a3 embedded in the JSON report (55505 bytes)
cyclonedx-1.7 sha256:0b323f20f1fe10c6827e4e4f95eac74131f7b562796866974a89cf9e7a0ea6c7 embedded in the JSON report (26621 bytes)
cyclonedx-1.7-vex sha256:62942ce2646bffc3761f5ada87954ac7167299a394bf1632855ab300753e772a embedded in the JSON report (2153 bytes)

Signature

This report is cryptographically signed: Ed25519 over the canonical report content. The public key is embedded in the report — verification is offline and registry-free (falsegreen verify-report).

key id: fg-report-9fc1a2c5-134c-4ca1-a0f2-56b2d1bcde67-20261018-1
ed25519 public key: ie4eQdY1lt7O5aCCQzO+/192Yzc4pLQsGyVNqSKtlmA=
ed25519 signature: ElwtGNIaWa+Pl93yIwHaGJFmvN7m569bNIPyjs9tFO5AYA6PXBpJ1iozFt7nTeYbstLLpdcLJukLbLeBb4WOAw==
digest: fbf0f1ad979580760474c065b21b6e3d149a77ca50a697c37717d42d7ad4f53a

This is a presentation of the signed canonical evidence (the JSON artifact). It is not an audit certificate. - FalseGreen v0.16.0