DO NOT open public issues for security vulnerabilities. Instead, please use GitHub's private vulnerability reporting feature or email the maintainers directly.
-
Use GitHub Security Advisory:
- Go to the repository's Security tab
- Click Report a vulnerability
- Describe the vulnerability and provide reproduction steps
- Submit privately to the maintainers
-
Direct Contact (if GitHub option unavailable):
- Email the repository maintainers
- Include: description, severity, affected versions, reproduction steps
- Do not disclose publicly until a fix is released
- Title: Clear, concise vulnerability description
- Severity: Critical, High, Medium, Low
- Affected versions: Which project versions are affected
- Description: Detailed explanation of the vulnerability
- Reproduction: Steps to reproduce the issue
- Impact: What an attacker could do if exploited
- Suggested fix: If you have recommendations
- Report submission: Initial report received
- Acknowledgment (within 48 hours): We confirm receipt and provide reference number
- Investigation (within 1 week): We assess severity and scope
- Fix development: We work on a patch
- Release (typically 30 days): We release a fix in a new version
- Public disclosure: Coordinated with you; details provided after fix is released
We provide security updates for:
- Current major version: Full support
- Previous major version: Security patches only
- Older versions: No support (please upgrade)
- Zero-credentials policy: No secrets are committed to version control
- Secret detection: Pre-commit hooks block hardcoded secrets
- Dependency scanning: NVD-based CVE scanning in CI/CD
- Workflow validation: GitHub Actions workflows are linted for security issues
- Code review: All changes require review before merge
- Branch protection: Main branch requires approval and passing checks
- Update regularly: Keep dependencies updated to patch known vulnerabilities
- Scan your use: Run
gradle dependencyCheckAnalyzeto identify CVEs - Report issues: Use responsible disclosure process above
- Follow policies: Adhere to security policies if using as a template
All secrets must be managed via environment variables:
# ✅ CORRECT
password: ${DATABASE_PASSWORD}
api_key: ${API_KEY}
# ❌ WRONG - will be blocked by pre-commit hook
password: hardcoded_password
api_key: hardcoded_api_keyThis repository uses:
- OWASP DependencyCheck: NVD-based Java dependency scanning
- actionlint: GitHub Actions workflow validation
- pre-commit hooks: Secret detection and keystore protection
Run security checks locally:
gradle dependencyCheckUpdate # Update NVD database
gradle dependencyCheckAnalyze # Scan for vulnerabilitiesIf a security issue is discovered:
- Investigation: We determine impact and affected versions
- Patching: We develop and test a fix
- Release: We release a new version with patch
- Notification: We notify users of the fix and encourage upgrades
- Disclosure: We provide details after reasonable time for users to upgrade
- ZERO_CREDENTIALS_POLICY.md - No secrets in version control
- SECRETS_POLICY.md - How to manage secrets safely
- .githooks/README.md - Pre-commit hook protections
For security inquiries:
- Primary: Report through GitHub Security Advisory (preferred)
- Alternative: Contact repository maintainers
- Do not disclose publicly until patch is released
We appreciate responsible security researchers who report vulnerabilities through proper channels. We will acknowledge your contribution in our release notes if you wish.