OpenHR is currently in the Research & Planning phase. Once the MVP is released, we will provide security updates for the following versions:
| Version | Supported |
|---|---|
| 1.x.x | ✅ |
| < 1.0 | ❌ |
Current Status: Pre-release (no production deployments yet)
We take security seriously. If you discover a security vulnerability in OpenHR, please follow responsible disclosure practices.
Email: arjunfrancis21@gmail.com
Subject Line: [SECURITY] Brief description of vulnerability
Include in your report:
- Description: What is the vulnerability?
- Impact: What could an attacker do with this vulnerability?
- Steps to Reproduce: Detailed steps to reproduce the issue
- Proof of Concept: Code, screenshots, or video (if applicable)
- Suggested Fix: Optional, but appreciated
- Your Contact Info: For follow-up questions
- Acknowledgment: Within 48 hours of your report
- Initial Assessment: Within 5 business days
- Updates: Regular updates on progress (at least every 7 days)
- Resolution: We aim to fix critical issues within 30 days
- Disclosure: Coordinated disclosure after a fix is released
In Scope:
- Authentication and authorization bypasses
- SQL injection, XSS, CSRF, and other injection attacks
- Remote code execution (RCE)
- Server-side request forgery (SSRF)
- Sensitive data exposure (PII, credentials, etc.)
- Privilege escalation
- Security misconfigurations
Out of Scope:
- Vulnerabilities in third-party dependencies (report to them directly, then notify us)
- Social engineering attacks
- Denial of Service (DoS) attacks
- Issues in development/staging environments (report them, but they're lower priority)
- Theoretical vulnerabilities without proof of concept
-
Never commit secrets:
- API keys, passwords, tokens, etc. should be in
.envfiles (not tracked by Git) - Use
.gitignoreto exclude.envfiles - Use environment variables for all sensitive configuration
- API keys, passwords, tokens, etc. should be in
-
Validate all inputs:
- Sanitize user inputs to prevent SQL injection and XSS
- Use parameterized queries (never string concatenation for SQL)
- Use libraries like
validator.jsorJoifor input validation
-
Use secure dependencies:
- Run
npm audit(Node.js) andpip-audit(Python) regularly - Update dependencies to patch known vulnerabilities
- Review dependency security advisories
- Run
-
Implement proper authentication:
- Use Supabase Auth for user authentication (OAuth2, JWT)
- Never store passwords in plain text
- Implement row-level security (RLS) in Postgres
-
Follow least privilege principle:
- Database users should have minimal required permissions
- API endpoints should check authorization for every request
- Use role-based access control (RBAC) where appropriate
- Use HTTPS everywhere: All production traffic must use TLS/SSL
- Set security headers:
Content-Security-PolicyX-Frame-OptionsX-Content-Type-OptionsStrict-Transport-Security(HSTS)
- Enable rate limiting: Prevent brute-force and DoS attacks
- Keep secrets out of version control: Use secret management tools
- Regular backups: Automated daily backups with encryption
- Minimize PII collection: Only collect data you need
- Encrypt sensitive data: At rest and in transit
- Implement GDPR compliance:
- Right to access (data export)
- Right to deletion (account deletion)
- Right to rectification (data correction)
- Log security events: Authentication attempts, permission changes, data access
- Anonymize logs: Never log PII (emails, names, messages)
-
Row-Level Security (RLS): We rely on Supabase's RLS policies to enforce data access control. Contributors must ensure all tables have proper RLS policies.
-
API Authentication: All API endpoints (except
/auth/*) require JWT tokens. Contributors must validate tokens on every request. -
Third-Party Integrations:
- GitHub API: OAuth2 tokens are stored securely; never log tokens
- OpenAI API: API keys are environment variables; track token usage
-
ML Service: The Python ML service has access to the database and vector store. Ensure input validation to prevent injection attacks.
- Implement Content Security Policy (CSP) for frontend
- Add API rate limiting (per user and per IP)
- Implement automated security scanning (Snyk, Dependabot)
- Add penetration testing for MVP
- Implement security audit logging
- Add two-factor authentication (2FA) for users
- Implement anomaly detection for suspicious activity
Primary Contact: arjunfrancis21@gmail.com
Project Maintainer: @ArjunFrancis
We appreciate responsible disclosure. Security researchers who report valid vulnerabilities will be:
- Acknowledged in our security advisories (unless you prefer to remain anonymous)
- Credited in release notes
- Thanked publicly on our GitHub and website
For significant vulnerabilities, we may offer:
- A mention in our Hall of Fame (coming soon)
- OpenHR swag (t-shirts, stickers)
- A reference/recommendation letter (upon request)
Note: OpenHR is an open-source project. We cannot offer monetary bug bounties at this time.
- OWASP Top 10
- CWE Top 25 Most Dangerous Software Weaknesses
- Supabase Security Best Practices
- Node.js Security Best Practices
Thank you for helping keep OpenHR and our community safe! 🔒