| Version | Supported |
|---|---|
| 0.2.x | ✅ |
| 0.1.x | ❌ |
Please DO NOT open public GitHub issues for security vulnerabilities.
Report vulnerabilities privately through GitHub's built-in private vulnerability reporting, which does not depend on any external mail server:
- Open the Security Advisories page for this repository.
- Click Report a vulnerability.
- Fill in the advisory form and Include:
- Detailed description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
This opens a private thread visible only to you and the maintainers; no special repository permissions are required to submit a report.
If you cannot use GitHub's private reporting, open a public issue titled
[SECURITY] Private contact request that contains no vulnerability details
and a maintainer will follow up with a private channel.
- Initial Response: Within 48 hours
- Status Update: Within 7 days
- Fix Timeline: Depends on severity
- Critical: 1-3 days
- High: 1-2 weeks
- Medium: 2-4 weeks
- Low: Next release cycle
- We practice coordinated disclosure
- We will work with you to understand and fix the issue
- Public disclosure after fix is deployed (typically 90 days)
- You will be credited in our security advisories (if desired)
- All production smart contracts on Mainnet
- Testnet contracts for design flaws only
- Critical: $10,000 - $50,000 (funds at risk)
- High: $5,000 - $10,000 (significant impact)
- Medium: $1,000 - $5,000 (moderate impact)
- Low: $100 - $1,000 (minimal impact)
- Issues in third-party dependencies
- Known issues already reported
- Theoretical vulnerabilities without proof of concept
- Social engineering attacks
- DoS attacks on public endpoints
- Be respectful and professional
- Do not publicly disclose before fix
- Do not exploit vulnerabilities
- Provide clear reproduction steps
- One bounty per unique vulnerability
- Never share your private keys
- Verify contract addresses before interacting
- Use hardware wallets for large amounts
- Monitor your transactions
- Report suspicious activity
- Read our Security Audit Checklist
- Follow Stellar security guidelines
- Review all PRs for security implications
- Keep dependencies updated
- Use static analysis tools
- Two-step admin transfer
- Per-function authorization checks
- No hidden backdoors
- All privileged operations emit events
- Checks-effects-interactions pattern
- Balance verification before transfers
- Saturating math to prevent overflow
- Escrow isolation
- Comprehensive state transition validation
- TTL management for all storage
- No orphaned state possible
- Atomic operations
- Least-privilege CI. All four GitHub Actions workflows declare explicit
permissionsblocks: the release job getscontents: write(the minimumsoftprops/action-gh-releaseneeds to create a release and upload assets), every other job getscontents: read. This keeps releases working under a read-only default token and bounds what a compromised third-party action can reach. - Locked dependency resolution. Every
cargoinvocation across CI, release, and testnet deploy uses--locked, so published WASM artifacts and their recorded SHA256 checksums are built from exactly the dependency set the test suite validated, and rebuilding a tag is reproducible. - Version-consistency guard.
release.ymlrefuses to build or publish when the pushedvX.Y.Ztag disagrees with the version declared by the workspace crates (or when the crates disagree with each other).
The project uses three distinct version numbers; they are intentionally not the same thing:
| Identifier | Where | Meaning |
|---|---|---|
| Crate / package version | contracts/*/Cargo.toml |
Source + published-artifact history. All workspace crates share one value. |
Release tag (vX.Y.Z) |
git tags → GitHub Releases | The user-facing name of a published artifact set. Must equal the crate version (CI-enforced, minus the v). |
PROTOCOL_VERSION |
escrow_contract::constants |
On-chain data/behaviour contract exposed via get_protocol_version(). Bumps only on an on-chain-observable protocol change, independently of crate releases. |
| Date | Auditor | Version | Report | Status |
|---|---|---|---|---|
| TBD | TBD | 1.0.0 | TBD | Pending |
- Private vulnerability reporting: GitHub Security Advisories
- Discord: FaniLab Official Server
Last Updated: August 2026