We actively support the following versions with security updates:
| Version | Supported |
|---|---|
| 0.2.x | ✅ |
| 0.1.x | ❌ |
We take security vulnerabilities seriously. If you discover a security issue, please follow these steps:
Please do not create a public GitHub issue for security vulnerabilities, as this could put users at risk.
Report security vulnerabilities through one of these channels:
- Navigate to the Security tab
- Click "Report a vulnerability"
- Fill out the security advisory form
Use GitHub Security Advisories (see above) as the primary contact method.
Include in your report:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if you have one)
After you report a vulnerability:
- Within 48 hours: We will acknowledge receipt of your report
- Within 7 days: We will provide an initial assessment
- Within 30 days: We aim to release a fix or provide a detailed response
We follow responsible disclosure practices:
- We will credit you for discovering the vulnerability (unless you prefer anonymity)
- We request that you keep the vulnerability confidential until we release a fix
- Once patched, we will:
- Release a security update
- Publish a security advisory
- Credit the reporter (if desired)
This project includes:
- Dependency scanning via GitHub Dependabot
- CodeQL security analysis on all commits
- Trivy security scanning for containers
- Static analysis (PSScriptAnalyzer for PowerShell)
- No storage of credentials or sensitive data
When you use this scaffolder to create Zotero plugins:
- Templates do not include any network access code by default
- No analytics or tracking code included
- All template code is visible and auditable
- No obfuscated or minified code in templates
- XXHash64/SHA256 checksums for all generated files
- Audit trail with timestamps
- Tamper detection capabilities
- Verification commands available
- Review Generated Code: Always review the code generated by the scaffolder before use
- Keep Dependencies Updated: Regularly update npm/Racket packages in generated projects
- Verify Downloads: Check file hashes if downloading releases
- Use Official Sources: Only download from official GitHub releases
- Input Validation: Always validate user input in your plugins
- Avoid eval(): Never use
eval()orFunction()with user input - Secure Data Storage: Use Zotero's secure storage APIs for sensitive data
- Content Security: Be cautious with XUL overlays and content scripts
- Update Dependencies: Keep all plugin dependencies up-to-date
The PowerShell scaffolder executes C# code for XXHash64 computation:
- Code is embedded in the script (not downloaded)
- All code is visible and auditable
- No network access required
- Runs with user's permissions only
The Racket scaffolder executes Lisp code:
- All code is part of the repository
- No remote code execution
- Uses standard Racket libraries only
- Runs in user context
The Bash scaffolder:
- Uses standard Unix utilities
- May call external tools (git, xxhsum)
- No remote downloads during execution
- Runs with user permissions
- Day 0: Vulnerability reported
- Day 1-2: Acknowledgment sent to reporter
- Day 1-7: Initial assessment and triage
- Day 7-30: Development and testing of fix
- Day 30: Public disclosure (if fix ready)
If a fix requires more than 30 days, we will:
- Communicate timeline to reporter
- Provide regular updates
- Consider temporary mitigations
We thank the following researchers for responsibly disclosing security issues:
No vulnerabilities have been reported yet.
This project is licensed under AGPL-3.0, which requires:
- Source code availability for network-accessible services
- Disclosure of modifications
- License compatibility for derivative works
See LICENSE for full details.
If you have questions about security that aren't covered here:
- Open a GitHub Discussion
- Review our Code of Conduct
This security policy is subject to change. Last updated: November 2024