|
| 1 | +# Security Policy |
| 2 | + |
| 3 | +## Supported Versions |
| 4 | + |
| 5 | +We actively support and provide security updates for the following versions: |
| 6 | + |
| 7 | +| Version | Supported | |
| 8 | +| ------- | ------------------ | |
| 9 | +| 2.x.x | :white_check_mark: | |
| 10 | +| 1.x.x | :x: | |
| 11 | + |
| 12 | +## Reporting a Vulnerability |
| 13 | + |
| 14 | +We take security vulnerabilities seriously. If you discover a security issue in XARF Python Parser, please report it responsibly. |
| 15 | + |
| 16 | +### How to Report |
| 17 | + |
| 18 | +**Please DO NOT report security vulnerabilities through public GitHub issues.** |
| 19 | + |
| 20 | +Instead, report security vulnerabilities by: |
| 21 | + |
| 22 | +1. **Email**: Send details to security@xarf.org |
| 23 | +2. **Private Advisory**: Use GitHub's [private security advisory feature](https://github.com/xarf/xarf-python/security/advisories/new) |
| 24 | + |
| 25 | +### What to Include |
| 26 | + |
| 27 | +When reporting a vulnerability, please include: |
| 28 | + |
| 29 | +- Description of the vulnerability |
| 30 | +- Steps to reproduce the issue |
| 31 | +- Affected versions |
| 32 | +- Potential impact assessment |
| 33 | +- Any proof-of-concept code (if applicable) |
| 34 | +- Your name/handle for credit (optional) |
| 35 | + |
| 36 | +### Response Timeline |
| 37 | + |
| 38 | +- **Acknowledgment**: Within 48 hours of report |
| 39 | +- **Initial Assessment**: Within 5 business days |
| 40 | +- **Status Updates**: Every 7 days until resolution |
| 41 | +- **Fix Timeline**: Critical issues within 30 days, others within 90 days |
| 42 | + |
| 43 | +### Disclosure Policy |
| 44 | + |
| 45 | +- We will coordinate public disclosure with you |
| 46 | +- Security advisories will be published after fixes are released |
| 47 | +- We credit security researchers in advisories (unless you prefer to remain anonymous) |
| 48 | + |
| 49 | +## Security Features |
| 50 | + |
| 51 | +This project implements multiple security layers: |
| 52 | + |
| 53 | +### Automated Scanning |
| 54 | + |
| 55 | +- **CodeQL Analysis**: Deep semantic security analysis (weekly + on PRs) |
| 56 | +- **Dependency Review**: PR-based vulnerability scanning |
| 57 | +- **Dependabot**: Automated dependency security updates |
| 58 | +- **Secret Scanning**: Detects committed credentials |
| 59 | +- **Bandit**: Python-specific security linter in CI |
| 60 | + |
| 61 | +### Code Quality Gates |
| 62 | + |
| 63 | +All pull requests must pass: |
| 64 | + |
| 65 | +- Static security analysis (Bandit) |
| 66 | +- Type safety checks (MyPy strict mode) |
| 67 | +- Dependency vulnerability scans |
| 68 | +- Code complexity limits (Radon) |
| 69 | + |
| 70 | +### Security Best Practices |
| 71 | + |
| 72 | +Our codebase follows: |
| 73 | + |
| 74 | +- Strict type hints for safety |
| 75 | +- Input validation via Pydantic models |
| 76 | +- No hardcoded credentials |
| 77 | +- Principle of least privilege |
| 78 | +- Regular dependency updates |
| 79 | + |
| 80 | +## Known Security Considerations |
| 81 | + |
| 82 | +### XARF Report Processing |
| 83 | + |
| 84 | +When processing XARF reports: |
| 85 | + |
| 86 | +1. **Input Validation**: All reports are validated against JSON schema |
| 87 | +2. **Email Parsing**: Uses python-email-validator for safe email processing |
| 88 | +3. **Date Handling**: Uses python-dateutil for timezone-aware parsing |
| 89 | +4. **No Code Execution**: Parser does not execute any user-provided code |
| 90 | + |
| 91 | +### Dependencies |
| 92 | + |
| 93 | +We actively monitor and update dependencies for security issues: |
| 94 | + |
| 95 | +- Automated Dependabot updates for vulnerabilities |
| 96 | +- Grouped minor/patch updates for development dependencies |
| 97 | +- Individual PRs for production dependency major updates |
| 98 | + |
| 99 | +## Security Updates |
| 100 | + |
| 101 | +Security updates are released as: |
| 102 | + |
| 103 | +- **Critical**: Immediate patch release |
| 104 | +- **High**: Patch release within 7 days |
| 105 | +- **Moderate**: Included in next minor release |
| 106 | +- **Low**: Included in next release cycle |
| 107 | + |
| 108 | +Subscribe to [GitHub Security Advisories](https://github.com/xarf/xarf-python/security/advisories) for notifications. |
| 109 | + |
| 110 | +## Responsible Disclosure |
| 111 | + |
| 112 | +We are committed to working with security researchers under responsible disclosure guidelines: |
| 113 | + |
| 114 | +1. Allow reasonable time for fixes before public disclosure |
| 115 | +2. Avoid privacy violations and data destruction |
| 116 | +3. Do not exploit vulnerabilities beyond proof-of-concept |
| 117 | +4. Respect user privacy and data protection regulations |
| 118 | + |
| 119 | +## Security Hall of Fame |
| 120 | + |
| 121 | +We recognize security researchers who help improve our security: |
| 122 | + |
| 123 | +<!-- Security researchers will be listed here after coordinated disclosure --> |
| 124 | + |
| 125 | +--- |
| 126 | + |
| 127 | +For general inquiries or questions about this policy, contact: security@xarf.org |
0 commit comments