Security is a top priority for the AI Art Revenue Exchange platform. This document outlines our security policy, supported versions, and how to report security vulnerabilities.
We actively maintain security updates for the following versions:
| Version | Supported | Notes |
|---|---|---|
| 1.x.x | ✅ | Current release |
| < 1.0 | ❌ | Pre-release, unsupported |
Our platform implements multiple layers of security:
- TLS 1.3 Only: Enforced SSL/TLS encryption for all traffic
- HSTS: HTTP Strict Transport Security with preload
- Content Security Policy: Strict CSP headers without unsafe-inline/unsafe-eval
- Rate Limiting: Multi-tier rate limiting (general, auth, API)
- Input Validation: Whitelist-based validation on all inputs
- CSRF Protection: Cross-Site Request Forgery protection enabled
- Security Headers: Comprehensive headers via Helmet.js (X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy)
- Query Injection Protection: Parameterized queries and input sanitization throughout the application
- Docker Isolation: Containers run as non-root users
- Network Segmentation: Internal Docker network with Nginx as the only public-facing service
- Read-Only Filesystems: Backend and frontend containers use read-only root filesystems
- Security Options:
no-new-privilegesenabled on all containers - Health Checks: Automated health monitoring for all services
- Encryption at Rest: AES-256 encryption for sensitive data
- Encryption in Transit: TLS 1.3 for all network communication
- Secret Management: Environment-based secrets with cryptographically secure random generation, never hardcoded
- Database Security: Prepared statements, parameterized queries (via Prisma ORM)
- Password Hashing: bcrypt with strong work factor (12 rounds)
- Input Sanitization: Escaping and validation of all user inputs to prevent injection attacks
- JWT Tokens: Short-lived access tokens (15 minutes)
- Refresh Tokens: Long-lived refresh tokens (7 days) with rotation
- Role-Based Access Control: Fine-grained permissions system
- Session Management: Redis-backed session store with secure cookies
- CodeQL Analysis: Automated code scanning for vulnerabilities and security issues
- Security-Extended Queries: Enhanced security query suite for comprehensive coverage
- Continuous Monitoring: Automated scanning on every push and pull request
- Custom Configuration: Optimized scanning for JavaScript/TypeScript codebase (see .github/README.md)
We take all security vulnerabilities seriously and appreciate responsible disclosure.
DO NOT create a public GitHub issue for security vulnerabilities.
Instead, please report security issues via one of these methods:
-
GitHub Security Advisories (Preferred)
- Go to the repository's Security tab
- Click "Report a vulnerability"
- Fill out the vulnerability report form
-
Email: security@aiartexchange.com
- Include "SECURITY" in the subject line
- Provide detailed information about the vulnerability
Please include the following information in your report:
- Description: Clear description of the vulnerability
- Impact: Potential impact and severity assessment
- Steps to Reproduce: Detailed steps to reproduce the issue
- Proof of Concept: Code or screenshots demonstrating the vulnerability
- Affected Versions: Which versions are affected
- Suggested Fix: If you have suggestions for how to fix the issue
- Your Contact Info: So we can follow up with questions
Title: [Brief description of vulnerability]
Severity: [Critical/High/Medium/Low]
Description:
[Detailed description of the vulnerability]
Affected Component:
[Which part of the system is affected]
Steps to Reproduce:
1. [Step 1]
2. [Step 2]
3. [Step 3]
Expected Behavior:
[What should happen]
Actual Behavior:
[What actually happens]
Impact:
[Potential security impact]
Suggested Fix:
[If you have suggestions]
Contact Information:
[Your email or preferred contact method]
We are committed to responding quickly to security reports:
- Initial Response: Within 48 hours of report submission
- Status Update: Weekly updates on investigation progress
- Fix Timeline: Critical vulnerabilities within 7 days, others within 30 days
- Public Disclosure: After fix is deployed and users have time to update (typically 30 days)
- Acknowledgment: We'll confirm receipt of your report within 48 hours
- Assessment: We'll assess the vulnerability and determine severity
- Fix Development: We'll work on a fix and may reach out for clarification
- Testing: We'll test the fix to ensure it resolves the issue
- Deployment: We'll deploy the fix to production
- Credit: We'll credit you in the security advisory (unless you prefer to remain anonymous)
- CVE Assignment: For significant vulnerabilities, we'll request a CVE identifier
Security updates are released as needed and announced via:
- GitHub Security Advisories
- Release notes with [SECURITY] tag
- Email to registered administrators
Subscribe to repository notifications to stay informed about security updates.
We currently do not have a formal bug bounty program, but we deeply appreciate security researchers who responsibly disclose vulnerabilities. We will:
- Publicly acknowledge your contribution (with your permission)
- Credit you in release notes and security advisories
- Consider future bug bounty rewards as our program matures
The following are not considered security vulnerabilities:
- Issues in third-party dependencies (report to the upstream project)
- Social engineering attacks
- Physical attacks
- Denial of Service (DoS) attacks requiring significant resources
- Issues requiring physical access to servers
- Issues in unsupported versions
- Theoretical vulnerabilities without proof of exploitability
If you're deploying this platform, please follow these security guidelines:
- Generate strong, unique secrets for all environment variables
- Use production-grade SSL/TLS certificates (not self-signed)
- Review and customize the Nginx configuration for your needs
- Ensure firewall rules allow only necessary ports (80, 443, 22)
- Set up fail2ban or similar intrusion prevention
- Enable automatic security updates
- Set up monitoring and alerting
- Implement backup procedures
- Configure log retention and analysis
- Regular security audits and penetration testing
- Keep all dependencies up to date
- Never commit
.envfiles to version control - Use secrets management (AWS Secrets Manager, HashiCorp Vault, etc.)
- Rotate secrets regularly (quarterly recommended)
- Use different secrets for each environment
Before going to production, verify:
- SSL/TLS certificates are valid and trusted
- All secrets are unique and randomly generated (32+ characters)
- Firewall is configured to allow only ports 80, 443, and 22
- Database has a strong password and is not publicly accessible
- Redis has a strong password and is not publicly accessible
- Docker network uses bridge mode with only Nginx exposing ports
- All containers run as non-root users
- CORS is configured with only trusted origins
- Rate limiting is properly configured
- Logging is enabled for security events
- Monitoring and alerting are configured
- Backups are automated and tested
- Incident response plan is documented
This platform is designed to support compliance with:
- GDPR: Data protection and privacy features
- PCI DSS: Payment data handled via Stripe (we never store card data)
- SOC 2: Security controls and audit logging
- CCPA: California Consumer Privacy Act compliance features
- OWASP Top 10
- Docker Security Best Practices
- Nginx Security Best Practices
- NestJS Security Best Practices
For general security questions (non-vulnerabilities):
- Email: security@aiartexchange.com
- Documentation: https://docs.aiartexchange.com/security
For urgent security issues, please use the vulnerability reporting process above.
Last Updated: February 2026
Version: 1.0