This document describes the security vulnerability disclosure process for the FacilPay smart contracts repository.
If you discover a security vulnerability in this repository, please report it responsibly and do not disclose the issue publicly until a fix has been released.
Email: security@facilpay.com
Response time: We aim to respond to vulnerability reports within 48 hours.
When reporting a vulnerability, please provide:
- Description — A clear summary of the vulnerability and its potential impact.
- Affected Component — Which contract(s) and function(s) are affected (e.g., payment contract's
complete_payment(), refund contract'sescalate_to_arbitration()). - Severity — Your assessment of severity (Critical, High, Medium, Low).
- Steps to Reproduce — Clear steps or proof-of-concept code demonstrating the issue (without triggering any real damage).
- Suggested Fix — If you have recommendations for remediation, we welcome them.
- Contact Information — Your name, email, and preferred contact method.
Security updates are provided for the following versions:
| Version | Status | Support Until |
|---|---|---|
| Latest main branch | Active | Ongoing |
| Previous tagged release | Limited | 6 months after latest release |
| Older releases | Unsupported | Not applicable |
We recommend always running the latest version to receive security fixes and feature improvements.
Once a vulnerability is reported:
- Acknowledgment (48 hours) — We confirm receipt and provide an initial assessment.
- Investigation (1–2 weeks) — Our security team reproduces and analyzes the issue.
- Fix Development (1–4 weeks depending on severity) — A patch is developed and tested.
- Pre-release Notification (3–5 days before release) — We notify downstream projects (API repo, SDK repo) of the fix.
- Public Disclosure (on release) — The fix is released publicly; we issue a security advisory and credit the researcher.
Critical vulnerabilities (e.g., fund loss, contract compromise) are prioritized:
- Fix Target: 1 week
- Release Target: 2 weeks from initial report
- Pre-release notification: 5 days before release
- Unauthorized fund transfer or lockup
- Contract state corruption or bypass of access controls
- Integer overflow/underflow leading to incorrect balances
- Cross-contract call failures that leave escrow in an unsafe state
- Signature/authentication bypass
- Reentrancy or state machine violations
- Cryptographic weaknesses
- Event emission failures that break off-chain indexers
- Issues in documentation or comments (report via pull request instead)
- Speculative issues without proof-of-concept
- Performance issues that don't affect correctness
- Vulnerabilities in dependent libraries (report to the library maintainers)
- Social engineering or phishing attacks
At this time, we do not operate a formal bug bounty program. However, we deeply appreciate security researchers who help us improve the safety of our contracts. Researchers who responsibly disclose vulnerabilities will be:
- Credited in our security advisory and this repository
- Acknowledged in release notes
- Considered for future bug bounty programs
If you are integrating these contracts into your application:
- Keep Updated — Subscribe to releases and apply security patches promptly.
- Audit Dependent Contracts — These contracts rely on external escrow and token contracts; ensure those are audited and trusted.
- Monitor Events — Use the documented Soroban events to verify contract behavior off-chain.
- Test Edge Cases — Particularly around refund limits, multi-sig governance, and arbitration timeouts.
- Rate Limiting — Enable the built-in rate limiting and fraud detection features.
- Access Controls — Use multi-sig governance for sensitive operations like admin upgrades.
Once a fix is released, we will:
- Publish a security advisory in this repository
- Tag the release with a security indicator
- Document the issue in the CHANGELOG.md
- Credit the researcher (unless they request anonymity)
For security-related inquiries other than vulnerability reports, please contact:
For general questions or feature requests, see the root README.md for community links.
Last Updated: 2026-07-29
For the most up-to-date security information, visit the FacilPay security page.