If you discover a security vulnerability in PayShield, please:
- Do not open a public GitHub issue
- Email: security@payshield.io
- Include: description, steps to reproduce, affected versions, potential impact
We aim to:
- Acknowledge receipt within 24 hours
- Provide initial assessment within 72 hours
- Release fix within 14 days (critical) or 30 days (medium/low)
| Version | Supported |
|---|---|
| 1.0.x | Yes |
| < 1.0 | No |
- Authentication: API keys (
x-api-key, SHA-256 hashed) + JWT tokens (HS256, 7-day sliding refresh rotation) + TOTP MFA (RFC 6238, SHA-1, 30s step, pure stdlib) for admin accounts - Rate Limiting: Per-API-key 1000 req/hr + per-user limits via Redis incr+TTL; 429 with Retry-After header; IP-based sliding window (200 req/min) as coarse guard
- CORS: Env-driven
FRONTEND_URL(no wildcard); SecurityHeadersMiddleware (CSP, HSTS, X-Content-Type-Options) - Authorization: RBAC enforced on all admin endpoints (
ENFORCE_RBAC=true; roles inconfigs/rbac.yaml) - Encryption: TLS 1.3 in transit, AES-256 at rest (
ENCRYPTION_KEYenv, PCI-DSS 3.4) - Audit: Tamper-evident audit log — append-only JSONL with SHA-256 hash chaining and PII masking (PAN, UPI IDs, device fingerprints) written on every scoring decision (
store/audit_log.py, PCI-DSS 10.1) - Secrets: SealedSecrets in Kubernetes — encrypted in Git, only decryptable by cluster; dev-only defaults in
.env.examplemust be rotated in production - Network: K8s network policies — zero-trust between pods
- Dependencies: Automated vulnerability scanning via Dependabot
| Area | Status |
|---|---|
| Dashboard auth tokens in localStorage (TD-003) | Pending — httpOnly cookies planned |
| OpenTelemetry distributed tracing | Not wired — correlation IDs available |
We follow coordinated disclosure:
- Reporter discovers vulnerability
- Reporter notifies security team privately
- Team validates and develops fix
- Fix deployed to production
- Public disclosure 30 days after fix
We do not currently offer a bug bounty program. Security researchers are recognized in our Hall of Fame for valid reports.