Please do not report security vulnerabilities through public GitHub issues.
Instead, please report them by opening a security advisory in the repository. To do this:
- Navigate to the Security tab
- Click on "Report a vulnerability"
- Fill out the form with details about the vulnerability
Or, if you prefer private communication, please email the maintainers directly.
When reporting a vulnerability, please include:
- Type of vulnerability (e.g., XSS, SQL injection, authentication bypass, etc.)
- Location of the vulnerable code (file path, line number if possible)
- A detailed description of the vulnerability
- Steps to reproduce (if applicable)
- Potential impact
- Suggested fix (if you have one)
This project follows security best practices:
- All API endpoints require valid Cloudflare Access JWT authentication
- JWT validation occurs on every authenticated request
- User context extracted from Cloudflare Access tokens (email-based)
- Authorization delegated to Cloudflare Access policies
- No user data stored - all operations use Cloudflare R2 API directly
- File operations authenticated via Cloudflare Access
- Signed URLs for downloads use HMAC-SHA256
- Environment secrets managed via Wrangler and Cloudflare Workers secrets
- CORS headers properly configured
- R2 API calls use properly formatted requests
- Object keys handled correctly (no encoding issues on Management API)
- Rate limiting handled by Cloudflare infrastructure
- All dependencies regularly updated via Dependabot
- Automated security scanning via CodeQL
- Secrets scanning enabled to prevent credential leaks
- Supply chain security monitored
- TypeScript for type safety
- ESLint configuration enforced
- Automated linting on pull requests
- Code review process for all changes
We aim to:
- Acknowledge receipt of vulnerability reports within 48 hours
- Provide an initial assessment within 1 week
- Release a fix as soon as possible (timeline depends on severity)
- Notify reporters when the fix is released
Status: Documented & Acknowledged | Risk: Not Exploitable in This Context
| Field | Value |
|---|---|
| Package | zlib 1.3.1-r2 (Alpine) |
| Severity | CRITICAL |
| Fix Available | No |
| Affected Component | Docker container base image |
Why This Is Not Exploitable:
R2 Bucket Manager's container does not:
- Process untrusted compressed data through zlib
- Accept arbitrary compressed input from users
- Use zlib for network protocol decompression
The zlib library is present in the Alpine base image but is not used in a way that exposes the vulnerability. This CVE requires an attacker to supply malicious compressed data, which is not possible in R2 Manager's architecture.
Mitigation:
- Monitoring for upstream fix from Alpine
- CVE is allowlisted in Docker security scan workflow
- Will be removed from allowlist when fix is available
- Subscribe to release notifications to stay informed about security updates
- Follow the project for security advisories
- Check this file regularly for updates to security practices
- This application requires Cloudflare Access (Zero Trust) for authentication
- If Access policies are misconfigured, unauthorized access may occur
- Ensure your Access policies are properly configured as documented in README.md
- The
/site.webmanifestpath bypasses Cloudflare Access to avoid CORS issues - This is a design trade-off; this file is intended to be public
- Do not store sensitive information in static assets
- Use strong API tokens and secrets (never commit them)
- Use
.envfiles for local development (included in .gitignore) - Use
wrangler secret putfor production secrets - Review environment variables before deployment
The application includes appropriate security headers:
- CORS headers for API endpoints
- Content-Type headers for proper content handling
- JWT validation on sensitive endpoints
This project uses:
- Dependabot for automatic dependency updates and security alerts
- CodeQL for static code analysis and vulnerability detection
- Secrets Scanning to prevent credential leaks
- Automated testing on pull requests
If you'd like to contribute security improvements:
- Follow the CONTRIBUTING.md guidelines
- Document security improvements clearly in your PR
- Ensure all tests pass
- Get approval from maintainers before merging
We appreciate security researchers who responsibly disclose vulnerabilities. Depending on the severity and impact, contributors may be recognized in:
- Security advisories
- Release notes
- Project documentation
Thank you for helping keep this project secure!