Currently, only the latest release is supported with security patches.
| Version | Status | Support Until |
|---|---|---|
| 0.1.x | Actively supported | v0.2 release |
| < 0.1.0 | Unsupported | — |
Do not open a public GitHub issue for security vulnerabilities.
Please report security issues privately to: rdemeritt@gmail.com
Include:
- Description of the vulnerability
- Affected versions
- Steps to reproduce (if possible)
- Potential impact
- Suggested fix (optional)
- Acknowledge: Within 48 hours
- Patch: Critical/High within 14 days; Medium within 30 days
- Disclosure: Coordinated 90-day disclosure after patch is released
-
API Key Storage (v0.1)
- Keys stored in plaintext in
.envfile - Requires file-level access control (
chmod 600 .env) - Anyone with host shell access can read keys
- Mitigation: Use strong, unique keys; rotate regularly
- Keys stored in plaintext in
-
Single-Tenant Architecture (v0.1)
- No multi-user isolation
- All authenticated requests have same permissions
- Mitigation: Deploy per-user instances or wait for v0.2 OAuth
-
HTTP Fetch SSRF Defense
- Custom allow-list implementation (not battle-tested)
- Potential for bypass via DNS rebinding, IPv6, or encoding tricks
- Mitigation: Always enable
PAGURUS_HTTP_ALLOWLIST; avoidPAGURUS_HTTP_ALLOW_PRIVATE=truein production
-
Shell Execution (shell.exec)
- Allowlist is prefix-based and depends on
$PATHordering - If operator installs malicious binary in
/usr/local/bin, it may bypass intent - Mitigation: Keep
PAGURUS_SHELL_ENABLED=falseunless required; audit$PATH; use minimal Docker images
- Allowlist is prefix-based and depends on
-
No Rate Limiting (v0.1)
- No per-key rate limits
- No automatic DOS protection
- Mitigation: Deploy behind a rate-limiting reverse proxy; v0.2 will add native support
- Operator misconfiguration (e.g.,
PAGURUS_HTTP_ALLOW_PRIVATE=trueon public network) - Host-level compromises (e.g., container escape)
- Dependency vulnerabilities (handled by Dependabot)
- File permissions:
chmod 600 .env - Keep
.env.example(no secrets) for version control - Rotate
PAGURUS_API_KEYSevery 90 days - Review
PAGURUS_SHELL_ALLOWLISTbefore enabling shell execution - Never set
PAGURUS_HTTP_ALLOW_PRIVATE=trueon internet-facing deployments - Review
PAGURUS_FS_DENYLIST— ensure sensitive paths are blocked - Use HTTPS (
PAGURUS_EXTERNAL_URLmust behttps://...) - Run latest patched version
- Monitor Docker image scans (Trivy) for CVEs
We appreciate security researchers who follow responsible disclosure practices. Please:
- Report privately — use the email above, not public issues
- Give us time — at least 72 hours to acknowledge before public disclosure
- Don't exploit — report the vulnerability itself, not proof-of-concept exploits
- Coordinate timing — we'll work with you on a mutually agreeable disclosure date
Researchers who report valid vulnerabilities will be credited in release notes and this document (if desired).
- Follow @pagurus_io on Twitter for security announcements (future)
- Watch this repository for release notifications
- Subscribe to the GitHub Security Advisory in your Pagurus repo
Security lead: Ron DeMeritt (rdemeritt@gmail.com)