— Security Policy —

NOT AUDITED. DISCLOSE RESPONSIBLY.

A small, experimental zkVM. It is not audited and should not be trusted with real value -- but soundness bugs are taken seriously, and responsible disclosure is genuinely useful here.

What counts as a security issue

  • A crafted program, proof, or public-inputs value that causes zkvm-stark to accept a proof it shouldn't — a soundness bug in the AIR. See Architecture for what the AIR is supposed to guarantee.
  • Anything in contracts/ that lets ProofOrchestrator pay out a reward without a genuinely valid, correctly-attested proof.
  • A way to make AttestedVerifier accept an attestation it shouldn't, other than the already-documented trust assumption on the Threat Model page — compromising the attester key itself isn't a new finding, that boundary is already disclosed.
  • A way to make the MCP server or HTTP API execute something it shouldn't, beyond the already-documented lack of auth on either surface — see API Reference and MCP.

What doesn't need a private report

Anything already named as a gap on the Roadmap, On-Chain Verifier, or Threat Model pages — those are documented, known limitations, not vulnerabilities. Open a normal public issue if you think one of those docs is itself wrong or out of date.

Reporting

Email codesbyfebin@gmail.com with:

  • What you found and why it's a soundness/security issue, not just a bug.
  • A minimal repro if you have one — a .zkasm program, a proof, or a test case is ideal. This repo's whole design philosophy is that soundness claims should be checkable by a test, so a report in that form is the fastest to act on.

Please don't open a public GitHub issue for a real soundness finding until there's been a chance to look at it. Anything else — a typo in a doc, a clippy warning, a test that could be clearer — a normal issue or PR is fine.

Full policy: SECURITY.md. General contribution guide: Contributing.