Reporting Security Vulnerabilities
How to Report
Create a private security advisory
Use GitHub’s private security advisory feature
Or email the maintainer directly
Contact the project maintainer via email for sensitive vulnerabilities
We take security seriously and will respond to vulnerability reports within 48 hours.
Security Best Practices
1. Environment Variables
- Local Development
- Generate Tokens
- Docker
2. API Keys and Tokens
Rotate credentials immediately if exposed
Rotate credentials immediately if exposed
If you accidentally commit credentials:
- Revoke the exposed credentials immediately
- Generate new credentials
- Update your configuration
- Use
git-secretsor similar tools to prevent future leaks
Use environment variables exclusively
Use environment variables exclusively
- No hardcoded fallbacks
- No default values for sensitive data
- Always validate environment variables are set
Implement proper token expiration
Implement proper token expiration
- Use short-lived tokens when possible
- Rotate tokens regularly
- Monitor token usage for anomalies
Use least-privilege access
Use least-privilege access
- Grant minimum permissions required
- Create separate API keys for different environments
- Regularly audit API key permissions
3. Code Security
4. Git Security
Before committing, always check:Install git-secrets
Install git-secrets
Prevent committing secrets to git:
5. Docker Security
Never include .env files
Never add
.env files to Docker imagesUse build arguments
Use build arguments for compile-time configuration
Runtime environment
Use runtime environment variables for secrets
Non-root users
Run containers as non-root users when possible
6. Dependencies
Security Checklist
Before each release or deployment:Pre-Release Security Checklist
Pre-Release Security Checklist
- No hardcoded credentials in source code
- All sensitive configuration uses environment variables
-
.envfiles are not tracked in git - Dependencies are up to date (
npm auditclean) - No sensitive data in logs
- API endpoints use proper authentication
- Docker images don’t contain secrets
- Security tests pass
- Third-party dependencies reviewed
Known Security Considerations
MCP Authentication
MCP Authentication
When running in HTTP mode, always use strong Configure in your environment:
AUTH_TOKEN values:n8n API Access
n8n API Access
The n8n API key provides full access to workflows:
- Protect it like a password
- Use separate keys for different environments
- Rotate keys regularly
- Monitor usage for anomalies
Database Access
Database Access
The SQLite database contains:
- ✅ Node information (safe)
- ✅ Documentation (safe)
- ✅ Template metadata (safe)
- ❌ No credentials stored
- ❌ No user data stored
Webhook Security
Webhook Security
When using webhooks with local n8n instances:
Security Tools
SecureKeyGuard
Automated scanning for exposed secrets
npm audit
Check for vulnerable dependencies
git-secrets
Prevent committing secrets to git
dotenv-vault
Secure environment variable management
Production Deployment
HTTPS Only
- Always use HTTPS for production deployments
- Use valid SSL/TLS certificates
- Configure proper CORS headers
Network Security
- Use firewall rules to restrict access
- Implement rate limiting
- Use VPN or private networks when possible
Monitoring
- Enable logging for security events
- Monitor for unusual API usage patterns
- Set up alerts for failed authentication attempts
Backup & Recovery
- Regular backups of configuration
- Documented recovery procedures
- Test restore procedures regularly
Compliance
n8n-MCP is designed to work with your existing security policies:
- No data leaves your infrastructure (self-hosted mode)
- All telemetry is optional and can be disabled
- No external dependencies in production mode
- Audit logs available for compliance
Contact
For security concerns or questions:Security Advisory
Report vulnerabilities privately
GitHub Issues
General security questions
Remember: Security is everyone’s responsibility. When in doubt, ask for a security review.