| Version | Supported |
|---|---|
| 0.1.x | ✅ |
We take security vulnerabilities in Sanctifier seriously. If you discover a security issue, please follow the responsible disclosure process outlined below.
- Do not open a public GitHub issue for security vulnerabilities.
- Send an email to security@sanctifier.dev with the following information:
- A clear description of the vulnerability.
- Steps to reproduce the issue.
- The affected component (CLI, core library, frontend, smart contracts).
- The potential impact and severity assessment.
- Any suggested fix or mitigation (optional).
- Acknowledgement: You will receive an acknowledgement within 48 hours of your report.
- Assessment: We will assess the vulnerability and determine its severity within 5 business days.
- Resolution: We aim to release a fix within 30 days of confirming the vulnerability, depending on complexity.
- Disclosure: We will coordinate with you on public disclosure timing. We request a 90-day disclosure window from the initial report.
| Level | Description | Response Time |
|---|---|---|
| Critical | Remote code execution, data loss, authentication bypass | 24 hours |
| High | Significant impact on analysis accuracy or data integrity | 3 days |
| Medium | Limited impact, requires specific conditions | 7 days |
| Low | Minimal impact, informational | 30 days |
The following components are in scope for vulnerability reports:
- sanctifier-core: Static analysis engine
- sanctifier-cli: Command-line interface
- Frontend dashboard: Web-based visualization
- Smart contract examples: Only if vulnerabilities affect the analysis tooling itself
- Vulnerabilities in third-party dependencies (report these to the respective maintainers)
- Issues in the example vulnerable contracts (these are intentionally insecure for demonstration)
- Denial of service through excessively large input files
We consider security research conducted in accordance with this policy to be:
- Authorized and welcome
- Conducted in good faith
- Not subject to legal action from our side
We will not pursue legal action against researchers who follow this responsible disclosure process.
We appreciate the security research community's efforts. With your permission, we will acknowledge your contribution in our release notes and security advisories.
This section documents the threat model for contracts/* and the mitigations
enforced by the CI compile matrix introduced in
.github/workflows/contracts-ci.yml.
| Asset | Threat | Trust boundary |
|---|---|---|
| User funds locked in vesting / multisig | Unauthorised withdrawal | Contract auth guards + Soroban host |
| Governance proposals | Vote manipulation | Quorum / threshold checks |
| Token balances | Integer overflow | checked_add / checked_sub everywhere |
| WASM bytecode | Supply-chain tampering | Deterministic builds; hash pinned in deployment manifest |
| CI pipeline | Malicious dependency | Cargo.lock committed; cargo audit in CI |
| Threat | Mitigation |
|---|---|
| Broken contract silently merged | Per-contract cargo check + cargo test in matrix CI |
| Clippy regression | -D warnings in cargo clippy step |
| WASM binary size bloat | scripts/build-contracts.sh --check enforces per-contract byte budgets |
| Non-deterministic WASM output | SOURCE_DATE_EPOCH + fixed RUSTFLAGS in build script |
| CPU/memory regression | Benchmark tests in contracts/benchmark exercise operations under the Soroban default resource budget |
| Untested code path merged | CI matrix runs tests for every contract independently |
- vulnerable-contract and token-with-bugs are intentionally insecure for analysis tooling demonstration. They are never deployed; their presence in CI is to validate that the Sanctifier tooling correctly flags their weaknesses.
- kani-poc contains Kani proof harnesses. These are excluded from
standard
cargo testbut can be verified withcargo kanion a host with Kani installed. - Contracts with
soroban-sdk = { features = ["testutils"] }in[dependencies](not[dev-dependencies]) cannot be compiled towasm32-unknown-unknown; they are excluded from the WASM build job. Seedocs/contracts-ci.mdfor the full list.