We actively patch security vulnerabilities in the following versions:
| Version | Supported |
|---|---|
main branch (latest) |
✅ |
| Release tags < 30 days old | ✅ |
| Older releases | ❌ (please upgrade) |
Please do NOT open a public GitHub issue for security vulnerabilities. Public disclosure before a fix is available puts all AFRAMP users at risk.
Send a detailed report to security@aframp.com with the subject line:
[SECURITY] <brief description>
If you prefer end-to-end encryption, request our PGP public key in the same email and we will reply with it.
A good vulnerability report includes:
- Description — what the vulnerability is and which component is affected.
- Impact — what an attacker could achieve (e.g. read wallet addresses, bypass KYC, drain user funds).
- Steps to reproduce — a minimal, reliable proof-of-concept (PoC). Scripts or curl commands are welcome; do not submit live exploits against production users.
- Affected versions — the commit SHA or release tag you tested against.
- Suggested fix (optional) — if you have one, we welcome it.
| Timeline | Action |
|---|---|
| Within 48 hours | We acknowledge receipt and assign an internal tracking ID. |
| Within 5 business days | We confirm whether the report is accepted as a valid vulnerability and assign a severity (Critical / High / Medium / Low). |
| Within 30 days (Critical/High) | We publish a fix and a CVE (if applicable). |
| Within 90 days (Medium/Low) | We publish a fix in a regular release. |
| After fix is deployed | We publicly credit you (unless you prefer to stay anonymous). |
We follow responsible disclosure: we will not take legal action against researchers who act in good faith and follow this policy.
- AFRAMP web application (
app/,components/,lib/) - API routes (
app/api/) - Stellar transaction signing and submission flows
- Payment gateway integrations (Paystack, Flutterwave, M-Pesa, MTN MoMo)
- Authentication and KYC flows
- Wallet key handling (
lib/wallet/) - Rate limiting and access control
- Environment variable / secret exposure
- Bugs that require physical access to a user's device
- Denial-of-service attacks that only affect your own account
- Theoretical vulnerabilities without a practical exploit
- Issues in third-party dependencies (report those upstream; let us know if you believe they affect AFRAMP specifically)
- Social engineering of AFRAMP team members
If you are contributing code, please follow these guidelines:
- Never commit secrets — use
.env.exampleas a template; real values go in.env.localwhich is.gitignored. - Parameterise inputs — avoid string concatenation in queries, URLs, or shell commands; use validated schemas (Zod) for all API inputs.
- Sanitise before logging — do not log wallet private keys, mnemonics, payment credentials, or full Stellar addresses.
- Use server-side secrets server-side — variables without the
NEXT_PUBLIC_prefix must never appear in client bundles. - Verify webhook signatures — always check
X-Paystack-Signature, Flutterwave'sverif-hash, and equivalent headers before processing incoming webhooks. - Keep dependencies patched — run
npm auditbefore merging; our CI blocks merges with high-severity CVEs.
We are grateful to the following researchers who have responsibly disclosed vulnerabilities to us:
No reports yet — be the first!
This security policy is published under the Apache 2.0 License, the same license as the rest of the project.